Сумма чисел от 1 до N
Функция вычисляет сумму целых чисел, не превышающих заданного пользователем числа N.
Первый вариант решения (с циклом):
Вначале программы вводим значение переменной n, например 5. Вычисления продолжаются в функции, где цикл перечисляет все цифры от 1 до m (которое имеет такое же значение, что и введенное n, но внутри функции), в нашем случае это 1, 2, 3, 4, 5. И все эти цифры складывает друг с другом занося значение в переменную «S».
Но задача имеет свой подвох, так как при больших значениях N цикл будет занимать очень много времени. Есть простой способ решения этой проблемы.
Второй вариант решения (сумма арифметической прогрессии):
Из школьного курса математики нам знакома формула суммы арифметической прогрессии (которой является ряд чисел из условия задачи):

С помощью этой формулы можно получить гораздо более эффективное решение. Например при n = 1000 будет выполнено одно сложение, умножение и деление вместо 1000 операций сложения (даже не считая инкременты счетчика цикла и сравнение его с n).
Вариант этой задачи:
Дано целое число N (> 1) . Вывести наибольшее из целых чисел K , для которых сумма 1 + 2 + … + K будет меньше или равна N , и саму эту сумму.
вычислить сумму натуральных чисел от 1 до n
Вычислить сумму натуральных чисел от 1 до n. Использовать формулу арифметической прогрессии нельзя (N*(N +1)/2).
Не знаю, даже как продолжить.
Получилось вот так:
Может как-то так?
Всё ещё ищете ответ? Посмотрите другие вопросы с метками c или задайте свой вопрос.
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Язык паскаль онлайн

Довольно простая задача хоть и с подвохом и если вы знаете как её решить , то вам следует пропустить её.
Но если же вы ещё новичек в программировании и у вас возникают проблемы при решении , то вам следует рассмотреть разбор задачи.
Устный разбор :
Вначале программы вводить значение переменной n . Например 4 . После этого создаем цикл , в котором посчитаем сумму всех чисел от 1 до N.
Первое решение задачи :
Для решения данной задачи нам потребовались 3 переменные . Переменная «N» для хранения заданного числа N , переменная «s» для хранения суммы всех чисел от 1 до N и переменная «i» в качестве счетчика для цикла.
Вначале программы вводим значение переменной N . Например 5 .Далее цикл перечисляет все цифры от 1 до N , в нашем случае это 1 , 2 , 3 , 4 , 5. И все эти цифры складывает друг с другом занося значение в переменную «s».
Но задача имеет свой подвох , так как при больших значениях N цикл будет занимать очень много времени. Есть простой способ решения этой проблемы.
Второе решение задачи :
Очень короткий код. Нам понадобилась всего одна переменная N .Но и это решение не идеально , так как значение переменной N может быть отрицательным.
Третье решение :
Объявляются две переменные «N» и «s». Переменная N несет в себе значение числа n , которое задают с клавиатуры. Переменная S несет в себе сумму чисел от 1 до N.
1. Вводим значение N.
2. Если значение N отрицательное , то s = ((1+abs(n))*abs(n)/ 2 — 1) * -1. Иначе s = (1+n)*n/ 2.
3. Подстраховываемся на тот случай , когда N = 0 и присваиваем s значение 1. Так как сумма чисел от 1 до 0 равна 1.
4. Выводим переменную s через функцию trunc() ( Подробнее ) специально для того случая , когда в условии задачи написано вывести целое число , а наша переменная s имеет вещественный тип.