📜  Uri beecrowd 问题 no - 1099 解决方案 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:35:31.871000             🧑  作者: Mango

Uri beecrowd 问题 no - 1099 解决方案 - C 编程语言

这是一道来自于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;
}
总结

本题较为简单,仅需要循环遍历每一对输入数字,然后计算奇数之和即可。细节方面需要注意判断奇偶性,别的方面均为常规套路。