← Все вопросы
Как посчитать сумму арифметической прогрессии по формуле, а не циклом?
5
Знаю, что сумму 1+2+...+100 можно посчитать циклом, но учитель говорит, что есть формула, которая считает мгновенно. Как она выглядит в коде?
1 ответ
10
✓ Принятый ответ — помог автору
Формула суммы арифметической прогрессии: (первый + последний) * количество / 2.
Для 1+2+...+n это (1 + n) * n / 2:
n = 100
total = (1 + n) * n // 2
print(total) # 5050
Использую //, чтобы получить целое (одно из произведения (1+n)*n всегда чётное, так что делится без остатка).
Если прогрессия не с шагом 1, а, например, с первого члена a1 и последнего an, формула общая: (a1 + an) * count // 2. Этот способ работает за одно действие, без перебора всех чисел.
Ваш ответ
Войдите, чтобы ответить на вопрос.