Избор на оптимален алгоритъм в 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);

Моралът: преди решаването на ресурсоемка задача задължително проверявайте дали няма готова математическа формула или готов математически подход за нейното решаване.

Задание 1

Намерете броя на числата, които се делят без остатък на 5, от интервала от 1 до 1000.

Задание 2

Намерете броя на цифрите, които ще са необходими, за да се запишат всички числа от 1 до 1000000.