2860. Сумма чисел на промежутке

 

Найти сумму целых чисел на промежутке от a до b.

 

Вход. Два целых числа а и b, по модулю не превышающих 2 * 109.

 

Выход. Сумма целых чисел на промежутке от a до b.

 

Пример входа

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

2 5

14

 

 

РЕШЕНИЕ

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

 

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

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

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

 

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

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

 

scanf("%lld %lld",&a,&b);

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

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

 

Java реализация

 

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);

  }

}

 

Python реализация

 

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

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

print (res)