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ă:
let 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:
let 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.
Găsiți numărul de numere divizibile fără rest
la 5, din intervalul de la 1
la 1000.
Găsiți numărul de cifre care vor fi necesare
pentru a scrie toate numerele de la 1 la 1000000.