Задачка по суммированию чисел до заданного

Задачка по суммированию чисел до заданного

Итак друзья, в этой рубрике мы будем разбирать интересные задачки по JavaScript и искать разные способы их решения.

Первая задачка на суммирование чисел. Необходимо написать функцию, которая принимает на вход число. На выходе она должна отдать сумму всех чисел до переданного числа.

Например, передаем в функцию число 3, на выходе ожидаем 1 + 2 + 3 (6). Ожидается, что передаются только положительные числа больше нуля.

У данной задачи есть несколько способов решения.

Первый - в лоб:

const summation = function (num) {
    let result = 0;
 
    for (let i = 1; i <= num; i++) {
        result += i;
    }
 
    return result;
}

Здесь используется обычный цикл for, который перебирает все числа от 1 до нужного числа и сохраняет полученные значения в переменной result, затем возвращаем результат.

Но есть способ и получше:

const summation = (number) => {
    return number > 1 ? number + summation(number - 1) : number;
}

Здесь мы имеем дело с рекурсивным вызовом, когда в возврате накапливаем результаты многократного вызова функции пока number > 1 и возвращаем итоговую сумму.

И для совсем смелых есть еще способ на знание алгоритмов:

const summation = number => number * (number + 1) / 2;

Вот такую интересную задачку сегодня рассмотрели. Всем успехов!

01.07.19
Для просмотра сайта обновите браузер.