Wybór optymalnego algorytmu w JavaScript

Czasami problem z kodem może być związany z tym, że wybrano nie najbardziej optymalne rozwiązanie zadania.

Załóżmy, na przykład, że przed nami stoi zadanie znalezienia sumy liczb całkowitych od 1 do 1000000. Rozwiążmy postawione zadanie:

javascriptlet sum = 0;

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

Co jest nie tak? Chodzi o to, że dla rozwiązania postawionego zadania istnieje rozwiązanie matematyczne.

To rozwiązanie praktycznie nie wymaga zasobów! Zaprogramujmy je:

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

Morał: przed rozwiązaniem zadania wymagającego dużych zasobów obowiązkowo sprawdź, czy nie ma dla jego rozwiązania gotowego wzoru matematycznego lub gotowego podejścia matematycznego.

Задание 1

Znajdź ilość liczb podzielnych bez reszty przez 5, z przedziału od 1 do 1000.

Задание 2

Znajdź ilość cyfr, która będzie potrzebna, aby zapisać wszystkie liczby od 1 do 1000000.