Výber optimálneho algoritmu v JavaScripte

Niekedy môže byť problém kódu spojený s tým, že nebolo zvolené najoptimálnejšie riešenie úlohy.

Predpokladajme napríklad, že pred nami stojí úloha nájdenia súčtu celých čísel od 1 do 1000000. Vyriešme zadanú úlohu:

javascriptlet sum = 0;

for (let i = 1; i <= 1000000; i++) {
  sum += i;
}
  
console.log(sum);

Čo je teda zlé? Ide o to, že na riešenie tejto úlohy existuje matematické riešenie.

Toto riešenie prakticky nevyžaduje žiadne zdroje! Naprogramujme ho:

javascriptlet n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);

Poučenie: pred riešením náročnej úlohy sa vždy uistite, či pre jej riešenie neexistuje hotový matematický vzorec alebo hotový matematický prístup.

Задание 1

Nájdite počet čísel deliteľných bezo zvyšku 5 z intervalu od 1 do 1000.

Задание 2

Nájdite počet číslic, ktoré budú potrebné na zapísanie všetkých čísel od 1 do 1000000.