1068. Сумма

 

Найти сумму чисел от 1 до n включительно.

 

Вход. Целое число n, не большее 10000 по абсолютному значению.

 

Выход. Сумма чисел от 1 до n включительно.

 

Пример входа

-3

 

Пример выхода

-5

 

 

РЕШЕНИЕ

элементарные вычисления

 

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

Если считать сумму, последовательно складывая числа от 1 до n, то получим Time Limit. Следует воспользоваться формулой суммы арифметической прогрессии. Если n > 0, то результатом будет

res = (1 + n) * n / 2

Иначе сумма равна

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

 

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

Читаем входное значение n и вычисляем сумму res согласно приведенным выше формулам.

 

scanf("%d",&n);

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

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

 

Выводим результат res.

 

printf("%d\n",res);