Alegerea algoritmului optim în JavaScript

Uneori, problema cu codul poate fi legată de faptul că a fost aleasă nu cea mai optimă soluție pentru sarcină.

Să presupunem, de exemplu, că avem sarcina de a găsi suma numerelor întregi de la 1 la 1000000. Să rezolvăm sarcina dată:

javascriptlet sum = 0;

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

Ce este în neregulă? Ideea este că pentru rezolvarea sarcinii date există o soluție matematică.

Această soluție practic nu necesită resurse! Să o programăm:

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

Morala: înainte de a rezolva o sarcină care consumă multe resurse verificați întotdeauna dacă nu există o formulă matematică gata făcută sau o abordare matematică gata făcută pentru rezolvarea ei.

Задание 1

Găsiți numărul de numere divizibile fără rest la 5, din intervalul de la 1 la 1000.

Задание 2

Găsiți numărul de cifre care vor fi necesare pentru a scrie toate numerele de la 1 la 1000000.