Выбор оптимального алгоритма в JavaScript
Иногда проблема кода бывает связана с тем, что выбрано не самое оптимальное решение задачи.
Пусть, к примеру, перед нами стоит задача
найти сумму целых чисел от 1
до 1000000
.
Решим поставленную задачу:
let sum = 0;
for (let i = 1; i <= 1000000; i++) {
sum += i;
}
console.log(sum);
Что же не так? Дело в том, что для решения поставленной задачи существует математическое решение.
Это решение практически не требует ресурсов! Запрограммируем его:
let n = 1000000;
let sum = n * (n + 1) / 2;
console.log(sum);
Мораль: перед решением ресурсоемкой задачи обязательно проверяйте, нету ли для ее решения готовой математической формулы или готового математического подхода.
Найдите количество чисел, делящихся без остатка
на 5
, из промежутка от 1
до
1000
.
Найдите количество цифр, которое понадобится,
чтобы записать все числа от 1
до 1000000
.