Требуется посчитать сумму целых чисел от 1 до n. входные данные в единственной строке входного файла input.txt записано единственное целое число n, не превышающее по абсолютной величине 104. выходные данные в единственную строку выходного файла output.txt нужно вывести одно целое число — сумму чисел от 1 до n.

Поляков Евгений Александрович

Учитель информатики высшей категории

Проверено учителем

Для решения этой задачи необходимо учитывать, что число nn может быть как положительным, так и отрицательным или равным нулю. Сумма последовательных целых чисел вычисляется с помощью формулы арифметической прогрессии. Алгоритм решения

  1. Определение диапазона: Нужно найти сумму всех целых чисел между 11 и nn включительно. Формула суммы: Сумма арифметической прогрессии вычисляется по формуле:
    S=(a1+an)k2cap S equals the fraction with numerator open paren a sub 1 plus a sub n close paren center dot k and denominator 2 end-fraction где a1a sub 1 — первое число, ana sub n — последнее число, а kk — количество чисел в последовательности. Определение количества чисел ( kk): Количество целых чисел в отрезке [a,b]open bracket a comma b close bracket равно |ab|+1the absolute value of a minus b end-absolute-value plus 1. В нашем случае это |1n|+1the absolute value of 1 minus n end-absolute-value plus 1.

Примеры расчетов

  • Если n=5n equals 5: Последовательность (1, 2, 3, 4, 5).
    S=(1+5)52=15cap S equals the fraction with numerator open paren 1 plus 5 close paren center dot 5 and denominator 2 end-fraction equals 15 . Если n=-3n equals negative 3: Последовательность (1, 0, -1, -2, -3).
    S=(1+(-3))52=-252=-5cap S equals the fraction with numerator open paren 1 plus open paren negative 3 close paren close paren center dot 5 and denominator 2 end-fraction equals the fraction with numerator negative 2 center dot 5 and denominator 2 end-fraction equals negative 5 . Если n=1n equals 1: Последовательность (1).
    S=(1+1)12=1cap S equals the fraction with numerator open paren 1 plus 1 close paren center dot 1 and denominator 2 end-fraction equals 1 .

Реализация на языке Python Программа считывает значение из файла input.txt и записывает результат в output.txt. python

# Чтение входных данныхwith open('input.txt', 'r') asf: line = f.read().strip() if line: n = int(line) # Определение первого и последнего членов последовательностиstart = 1end = n # Вычисление количества чисел kk = abs(start - end) + 1# Вычисление суммы по формуле арифметической прогрессииtotal_sum = (start + end) * k // 2# Запись результатаwith open('output.txt', 'w') asf: f.write(str(total_sum)) 
Use code with caution.Математическая справка Поскольку по условию |n|104the absolute value of n end-absolute-value is less than or equal to 10 to the fourth power, результат всегда будет находиться в пределах типа данных integer (максимальное значение суммы составит около 50 миллионов), что позволяет избежать переполнения в большинстве современных языков программирования. Хотите, чтобы я переписал этот код на другом языке программирования, например, на C++ или Pascal?

Форма ответа

Ваш аватар