Optimaalisen algoritmin valinta JavaScriptissä

Joskus koodin ongelma liittyy siihen, että ongelman ratkaisemiseksi ei ole valittu optimaalisinta tapaa.

Oletetaan esimerkiksi, että tehtävämme on laskea kokonaislukujen summa väliltä 1 - 1000000. Ratkaistaan annettu tehtävä:

javascriptlet sum = 0;

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

Mikä siinä on ongelmana? Kyse on siitä, että tämän tehtävän ratkaisemiseen on olemassa matemaattinen ratkaisu.

Tämä ratkaisu ei käytännössä vaadi resursseja! Ohjelmoidaan se:

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

Opimme: ennen resursoivaa tehtävän ratkaisemista tarkista aina, onko sen ratkaisemiseksi olemassa valmista matemaattista kaavaa tai valmista matemaattista lähestymistapaa.

Задание 1

Löydä niiden lukujen määrä, jotka ovat jaollisia ilman jäännöstä luvulla 5, väliltä 1 - 1000.

Задание 2

Löydä niiden numeroiden määrä, joita tarvitaan kirjoittamaan kaikki luvut väliltä 1 - 1000000.