10783. Сумма нечетных чисел
Вычислить сумму всех нечетных
чисел из интервала [a, b]. Например, сумма нечетных чисел из
интервала [3, 9] равна 3 + 5 + 7 + 9 = 24.
Вход.
Первая строка содержит количество тестов T (1 £ T £ 100). Каждый тест состоит из двух
чисел a и b (0 £ a £ b £ 100), каждое из которых
находится в отдельной строке.
Выход. Для каждого теста вывести его
номер и сумму всех нечетных чисел из интервала [a, b].
2
1
5
3
5
Case 1: 9
Case 2: 8
математика
Пересчитаем значения a и b
так, чтобы a равнялось наименьшему нечетному числу из интервала [a,
b], а b – наибольшему. Если a > b, то сумма рана
0. Иначе сумму всех нечетных чисел из интервала [a, b] считаем по
формуле суммы арифметической прогрессии. Поскольку значения a и b
нечетные, то количество нечетных чисел в интервале [a, b] равно (b
– a) / 2 + 1, а сумма всех нечетных чисел равна
Пример
Путь a = 4, b = 10.
После пересчета интервал [4, 10] превратится в [5, 9]. Количество нечетных
чисел равно (9 – 5) / 2 + 1 = 3. Сумма всех нечетных чисел равна (5 + 9) / 2 *
3 = 21.
После прочтения входных данных
пересчет границ интервала совершаем по правилу: если значение a четно,
то увеличиваем его на 1; если b четно, то уменьшаем его на 1. Далее
используем формулу суммы членов арифметической прогрессии.
scanf("%d",&tests);
for(i = 1; i
<= tests; i++)
{
scanf("%d
%d",&a,&b);
if (a % 2
== 0) a++;
if (b % 2
== 0) b--;
if (b <
a) res = 0;
else res =
(b + a) * ((b - a)/2 + 1) /2;
printf("Case
%d: %d\n",i,res);
}