← Все вопросы

Как посчитать сумму арифметической прогрессии по формуле, а не циклом?

Задан 21 месяц назад324 просмотров1 ответ
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. Этот способ работает за одно действие, без перебора всех чисел.

Ваш ответ

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