2860.
Сумма чисел на промежутке
Найти сумму
целых чисел на промежутке от a до b.
Вход. Два целых числа а
и b, по модулю не превышающих 2 * 109.
Выход. Сумма целых чисел на промежутке от a до b.
Пример
входа |
Пример
выхода |
2 5 |
14 |
РЕШЕНИЕ
элементарные вычисления
Если считать
сумму при помощи цикла, то в худшем случае (при a = -2 * 109, b = 2 * 109)
следует совершить до 4 * 109 итераций, а это приведет к Time Limit.
Воспользуемся формулой суммы арифметической прогрессии. Первый член равен a, последний b, а всего членов b – a + 1. Тогда искомая сумма равна
Следует также
отметить, что полученная сумма может не помещаться в тип int. Поэтому при вычислении следует
воспользоваться типом long long.
Читаем входные данные. Вычисляем и выводим ответ.
scanf("%lld
%lld",&a,&b);
res = (a + b) * (b - a + 1) / 2;
printf("%lld\n",res);
import java.util.*;
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);
}
}
a,b = map(int,input().split())
res = (a + b) * (b - a + 1) // 2
print (res)