Aralıqdakı ədədlərin cəmi#2860

Aralıqdakı ədədlərin cəmi (Həll təhlili)

Əgər cəmi dövr vasitəsilə hesablasaq, ən pis halda (yəni a = -2 \cdot 10^9 və b = 2 \cdot 10^9 olduqda) 4 \cdot 10^9-a qədər təkrar yerinə yetirmək tələb olunacaq ki, bu da vaxt limitinin aşılmasına səbəb olacaq. Buna görə də hesab silsiləsinin cəm düsturundan istifadə edəcəyik. Birinci hədd -ya, sonuncu hədd -yə bərabərdir, hədlərin sayı isə b - a + 1-dir. Onda axtarılan cəm aşağıdakı düsturla hesablanır:

\frac{a+b}{2} (b - a + 1)

Həmçinin qeyd etmək lazımdır ki, alınan qiymət int tipinə sığmaya bilər, buna görə də hesablamalar zamanı long long tipindən istifadə etmək lazımdır.

Alqoritmin realizasiyası

Giriş məlumatlarını oxuyuruq.

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

Cavabı hesablayıb çap edirik.

res = (a + b) * (b - a + 1) / 2;
printf("%lld\n",res);

Java realizasiyası

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 realizasiyası

Giriş məlumatlarını oxuyuruq.

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

Cavabı hesablayıb çap edirik.

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