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

Столкнулся с этой задачей еще давно и так и не дает покоя. Понятно, что циклом решить это затратно по времени, но я нашел и другой выход – арифметическая прогрессия, но тут начало не с 1, а с произвольного элемента, так что тут стандартной формулой не получится.

Конкретизирую вопрос:
Как математически посчитать сумму например от 47 до 72, т.е. 47 + 48+ 49 … + 72 ?
  • Вопрос задан
  • 31564 просмотра
Решения вопроса 1
ManWithBear
@ManWithBear
Swift Adept, Prague
Стандартной формулой тут получится.
S = (a1+an)*n/2, где a1 - первый член, an - последний, n - количество членов последовательности
Имеем (47+72)*26/2 = 1547

Итого ваша формула: S = (a+b)(b-a+1)/2
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
result = ((b+1)*b-(a-1)*a) div 2;
a=1 b=100 result=5050 (именно столько и должно быть, а не 1050)
a=2 b=5 result=14 (2+3+4+5=14)
a=5 b=10 result=45 (5+6+7+8+9+10=45)
Ответ написан
Как математически посчитать сумму например от 47 до 72, т.е. 47 + 48+ 49 … + 72 ?

Высчитать сумму первых 72 членов арифметической прогрессии и вычесть из нее сумму первых 46 членов арифметической прогрессии.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы