📅  最后修改于: 2023-12-03 15:35:31.871000             🧑  作者: Mango
这是一道来自于beecrowd网站的编程问题,题目为“Sum of Consecutive Odd Numbers II”。该题目需要求出给定两个正整数之间的所有奇数和。
给定 $N$ 个正整数的序列,找到介于这些整数之间的所有奇数(不包括 $a$ 和 $b$),并计算它们的和。
第一行包含一个正整数 $N$,表示序列中的数字个数。
接下来的 $N$ 行,每行包含两个正整数 $a$ 和 $b$,表示两个数字之间的范围 $(a < b)$。
对于每个测试用例,输出一行,包含介于输入数字之间的所有奇数(不包括 $a$ 和 $b$)的总和。每个测试用例后面都要换行。
2
4 7
7 10
4
16
本题的解题思路比较简单:对于每一对输入的数字 $(a,b)$,从 $a+1$ 到 $b-1$ 遍历一遍,将所有奇数相加即可。方法如下所示:
#include <stdio.h>
int main() {
int n, a, b, i, t, sum;
scanf("%d", &n);
while (n--) {
scanf("%d %d", &a, &b);
sum = 0;
t = a + 1; // 从a+1开始遍历
while (t < b) {
if (t % 2 != 0) sum += t; // 如果是奇数则加起来
t++;
}
printf("%d\n", sum);
}
return 0;
}
本题较为简单,仅需要循环遍历每一对输入数字,然后计算奇数之和即可。细节方面需要注意判断奇偶性,别的方面均为常规套路。