Избор на оптимален алгоритам во JavaScript

Понекогаш проблемот со кодот може да биде поврзан со тоа што е избрано не најоптималното решение на задачата.

Да претпоставиме, на пример, дека ни е поставена задачата да го најдеме збирот на цели броеви од 1 до 1000000. Да ја решиме поставената задача:

javascriptlet sum = 0;

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

Што не е во ред? Работи се во тоа што за решавање на поставената задача постои математичко решение.

Ова решение практично не бара ресурси! Да го програмираме:

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

Морал: пред решавање на задача која бара многу ресурси задолжително проверете дали не постои готовa математичкa формулa или готов математички пристап за нејзино решавање.

Задание 1

Најдете го бројот на броеви кои се делат без остаток на 5, од интервалот од 1 до 1000.

Задание 2

Најдете го бројот на цифри кои ќе бидат потребни, за да се запишат сите броеви од 1 до 1000000.