Az optimális algoritmus kiválasztása JavaScriptben

Néha a kód problémája azzal függ össze, hogy nem a legoptimálisabb megoldást választottuk a feladathoz.

Tegyük fel például, hogy az a feladat áll előttünk, hogy találjuk meg az egész számok összegét 1-től 1000000-ig. Oldjuk meg a feladatot:

javascriptlet sum = 0;

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

Mi a baj ezzel? Az, hogy a feladat megoldására létezik matematikai megoldás.

Ez a megoldás gyakorlatilag nem igényel erőforrásokat! Programozzuk is le:

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

Tanulság: erőforrás-igényes feladatok megoldása előtt mindig ellenőrizd, hogy létezik-e a megoldásához kész matematikai képlet vagy kész matematikai megközelítés.

Задание 1

Határozd meg azon számok mennyiségét, amelyek maradék nélkül osztók 5-tel, az 1-től 1000-ig terjedő intervallumban.

Задание 2

Határozd meg a számjegyek mennyiségét, amelyekre szükség lesz az összes szám felírásához 1-től 1000000-ig.