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:
let 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:
let 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.
Znajdź ilość liczb podzielnych bez reszty
przez 5, z przedziału od 1 do
1000.
Znajdź ilość cyfr, która będzie potrzebna,
aby zapisać wszystkie liczby od 1 do 1000000.