Задача понятна: ввести натуральное число N и найти сумму чисел от 1 до N.
Предпочтительная цель по вашему запросу — понять решение, поэтому дам два варианта: быстрый с формулой и пошаговый через цикл. Оба варианта подходят для Кумир (Pascal-подобный синтаксис).
Важное пояснение:
- Сумма чисел от 1 до N равна N(N+1)/2. Это формула арифметической прогрессии.
- Можно также посчитать сумму циклом: S = 0; для i от 1 до N S += i. Это наглядно, но медленнее для больших N (O(N)).
Вариант 1: через результативную формулу (быстрый)
- Обоснование: S = 1 + 2 + ... + N = N*(N+1)/2
- Код Кумир (Pascal-подобный синтаксис):
var N, S: integer; begin read(N); S := N * (N + 1) div 2; writeln(S); end.
Пояснение к коду:
- read(N) считывает введённое N.
- S := N * (N + 1) div 2 вычисляет целочисленное деление на 2.
- writeln(S) выводит полученную сумму.
Вариант 2: через цикл (пошагово)
- Обоснование: постепенно накапливаем сумму от 1 до N.
- Код Кумир:
var N, S, i: integer; begin read(N); S := 0; for i := 1 to N do S := S + i; writeln(S); end.
Пояснение к коду:
- S начинается с 0.
- Цикл i от 1 до N добавляет i к S.
- В конце выводится S — сумма от 1 до N.
Какой вариант выбрать?
- Если нужна скорость и простой код: вариант 1 (формула).
- Если важно наглядно увидеть процесс суммирования и не использовать деление: вариант 2 (цикл).