Как посчитать сумму чисел на промежутке a, b с шагом k без цикла?

Требуется найти сумму чисел от a до b, не используя циклы for, while и тд. Единственное решение, как я понял - формула арифметической прогрессии. Но как дополнить эту формулу, чтобы считала еще с шагом?

Заранее благодарен!
  • Вопрос задан
  • 1426 просмотров
Решения вопроса 1
Можно так представить сумму этой последовательности с шагом k:
(a + 0*k) + (a + 1*k) + (a + 2*k) + ... + (a + (N-1)*k)
= a * N + ( 0*k + 1*k + 2*k + ... (N-1)*k )
= a * N + k * (0 + 1 + 2 + ... (N-1))
= a * N + k * (N * (N - 1) / 2 )
Получилась формула для искомой суммы.

Остается найти N – количество суммируемых чисел = минимальное N, при котором a + N*k > b
Тут поможет программирование:var N = 1 + Math.floor((b-a) / k);

Получили N, посчитали по формуле сумму. Никаких циклов, одно округление )

Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@beerchaser
В принципе, ещё рекурсией можно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы