Scelta dell'algoritmo ottimale in JavaScript

A volte il problema del codice può essere legato al fatto che non è stata scelta la soluzione più ottimale per il problema.

Supponiamo, ad esempio, di avere il compito di trovare la somma dei numeri interi da 1 a 1000000. Risolviamo il compito assegnato:

javascriptlet sum = 0;

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

Cosa c'è che non va? Il fatto è che per risolvere il compito assegnato esiste una soluzione matematica.

Questa soluzione richiede praticamente nessuna risorsa! Programmiamola:

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

Morale: prima di risolvere un compito ad alta intensità di risorse controlla sempre se non esiste una formula matematica già pronta o un approccio matematico pronto per la sua soluzione.

Задание 1

Trova il numero di numeri divisibili senza resto per 5, nell'intervallo da 1 a 1000.

Задание 2

Trova il numero di cifre che saranno necessarie per scrivere tutti i numeri da 1 a 1000000.