Hablu likes odd numbers a lot. So he wants the sum of
all odd numbers in range [a, b]. That is, find the sum of all odd
numbers i such that (a ≤ i ≤ b). Seems
easy right? Because it is.
Input. The first and only line will contain 2 integers
a, b (0 ≤ a ≤ b ≤ 108).
Output. In one
line, output the value of the sum.
Sample input |
Sample output |
0 9 |
25 |
математика
Увеличим
а на 1, если оно четное. Уменьшим b на 1,
если оно четное. Если a > b, то ответ 0 (такое может случиться если изначально
интервал [а, b] содержит одно четное число).
Осталось
найти сумму арифметической прогрессии от а
до b,
где а и b нечетные. Количество нечетных
чисел на этом интервале равно (b – a) / 2 + 1. Таким образом искомая сумма чисел
равна
Реализация алгоритма
#include <stdio.h>
long long a, b, res;
int main(void)
{
scanf("%d %d", &a,
&b);
if (a % 2 == 0) a++;
if (b % 2 == 0) b--;
if (a > b) res = 0;
else res = (a + b) / 2 * ((b - a) / 2 + 1);
printf("%lld\n", res);
return 0;
}