Optimaalse algoritmi valimine JavaScriptis

Mõnikord võib koodi probleem olla seotud sellega, et ülesande lahendamiseks ei ole valitud kõige optimaalsemat lahendust.

Oletame, et meie ees on ülesanne leida täisarvude summa 1-st 1000000-ni. Lahendame püstitatud ülesande:

javascriptlet sum = 0;

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

Mis siis viga on? Asi on selles, et selle ülesande lahendamiseks on olemas matemaatiline lahendus.

See lahendus ei nõua praktiliselt ressursse! Programmeerime selle:

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

Moraal: enne ressursimahuka ülesande lahendamist kontrollige kindlasti, kas selle lahendamiseks ei ole olemas valmis matemaatilist valemit või valmis matemaatilist lähenemist.

Задание 1

Leidke arvude hulk, mis jaguvad ilma jäägita 5-ga, vahemikus 1 kuni 1000.

Задание 2

Leidke numbrite arv, mida on vaja kõikide arvude kirjutamiseks 1-st 1000000-ni.