Как найти сумму целых чисел
Перейти к содержимому

Как найти сумму целых чисел

  • автор:

Как найти сумму целых чисел

элементарная задача – формула

По формуле суммы членов арифметической прогрессии искомая сумма равна

Непосредственное суммирование в цикле даст Time Limit.

Определим функцию вычисления модуля числа.

long long abs( long long x)

Читаем входное значение n . Вычисления будем производить в 64-битовом знаковом целочисленном типе. Формула суммы включает в себя два множителя и один делитель. Чтобы избежать переполнения, будем сначала выполнять деление, а затем умножение.

if (n % 2) res = (1 + n) / 2 * n;

else res = n / 2 * (1 + n);

if (n % 2) res = (1 + n) / 2 * (abs(n) + 2);

else res = (abs(n) + 2) / 2 * (1 + n);

printf( «%lld\n» ,res);

Сумма чисел от 1 до N

Онлайн калькулятор поможет найти сумму чисел от одного до N, вычислит сумму натуральных чисел от единицы до указанного числа включительно.

Для сложения определенного количества целых чисел в диапазоне от 1 до заданного значения N используется формула: (N×(N+1))/2
Где N — наибольшее число ряда.

Например сумма чисел от 1 до 100:
(100×(100+1))/2 = 100×(101)/2 = (10100)/2 = 5050
Сумма всех целых чисел от 1 до 100 равна 5050.

Сумма чисел от 1 до 10 = 55
Сумма чисел от 1 до 15 = 120

Пожалуйста напишите с чем связна такая низкая оценка:

Как найти сумму целых чисел

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Анализ алгоритма

Если считать сумму при помощи цикла, то в худшем случае (при a = — 2 * 10 9 , b = 2 * 10 9 ) следует совершить до 4 * 10 9 итераций, а это приведет к Time Limit. Воспользуемся формулой суммы арифметической прогрессии. Первый член равен a, последний b, а всего членов b – a + 1. Тогда искомая сумма равна

Следует также отметить, что полученная сумма может не помещаться в тип int. Поэтому при вычислении следует воспользоваться типом long long .

Реализация алгоритма

Читаем входные данные. Вычисляем и выводим ответ.

res = (a + b) * (b — a + 1) / 2;

printf( «%lld\n» ,res);

Java реализация

public class Main

public static void main(String[] args )

Scanner con = new Scanner(System. in );

long a = con .nextLong();

long b = con .nextLong();

long res = ( a + b ) * ( b — a + 1) / 2;

System. out .println( res );

Python реализация

a,b = map( int ,input().split())

res = (a + b) * (b — a + 1) // 2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *