Optimalaus algoritmo pasirinkimas JavaScript

Kartais kodo problema gali būti susijusi su tuo, kad pasirinktas ne pats optimaliausias uždavinio sprendimas.

Tarkime, pavyzdžiui, kad prieš mus yra uždavinys rasti sveikųjų skaičių sumą nuo 1 iki 1000000. Išspręskime pateiktą uždavinį:

javascriptlet sum = 0;

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

Kas negerai? Esmė ta, kad šiam uždaviniui išspręsti egzistuoja matematinis sprendimas.

Šis sprendimas praktiškai nereikalauja resursų! Užprogramuokime jį:

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

Moralas: prieš sprendžiant resursų reikalaujantį uždavinį būtinai patikrinkite, ar nėra jo sprendimui jau paruoštos matematinės formulės ar paruošto matematinio požiūrio.

Задание 1

Raskite skaičių kiekį, kurie dalijasi be liekanos iš 5, intervale nuo 1 iki 1000.

Задание 2

Raskite skaitmenų kiekį, kurio prireiks, kad užrašyti visus skaičius nuo 1 iki 1000000.