Сумма от 1 до N
Условие
Сумма от 1 до N
Выведите сумму всех целых чисел от \(1\) до \(n\).
Входные данные
Одно целое число \(n\) (\(1 \le n \le 10^6\)).
Выходные данные
Одно число — \(1 + 2 + \dots + n\).
Пример
Вход:
5
Выход:
15Как решать — идея подхода
Приём: Формула суммы арифметической прогрессии
Ключевое наблюдение: числа от 1 до n образуют арифметическую прогрессию. Её сумму можно посчитать сразу, не складывая по одному.
Почему это работает: если сложить пары «первый + последний», «второй + предпоследний» и т.д., каждая пара даёт одно и то же значение n+1. Таких пар примерно n/2, поэтому итог выражается простой формулой.
План решения:
- Считать целое
n. - Посчитать сумму по формуле
n*(n+1)//2. - Вывести результат.
Мини-сниппет (сама идея):
ans = n * (n + 1) // 2
Сложность:
- Время O(1), память O(1).
Частая ошибка:
- Делить обычным
/и получить float (например,15.0). Нужна целочисленная операция//, чтобы ответ был целым числом.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки