top1编程
← 返回题目
题解

偶数与奇数的和

1 条题解

  • 0
    @ 2026-8-5 21:17:14

    P4407 偶数与奇数的和(入门)

    解题思路

    题目让算1到100之间所有偶数的和、所有奇数的和。偶数就是能被2整除的数,比如2、4、6…;奇数就是除2余1的数,比如1、3、5…。用for循环让i从1走到100,每来一个数i,就用 i%2 判断它是偶数还是奇数:i%2==0 说明i能被2整除,是偶数,累加进偶数和e里;否则就是奇数,累加进奇数和o里。循环结束后分别输出e和o。边界情况:1和100都要包含,所以循环要写成 i=1; i<=100,这样正好从1到100一个不少。如果写成 i<100 就会漏掉100这个偶数,也会漏掉99这个奇数,所以那个等于号特别重要。这道题数据量固定,循环一定不会超时。验证一下答案:1~100里偶数有50个,2+4+…+100=2550;奇数也有50个,1+3+…+99=2500,和样例一致。

    参考代码

    // 程序用途:用for循环分别计算1~100中偶数的和与奇数的和
    #include <iostream>
    using namespace std;
    
    int main() {
        int e = 0, o = 0;               // e存偶数和,o存奇数和
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) e += i;     // i能被2整除,是偶数,累加给e
            else o += i;                // 否则是奇数,累加给o
        }
        cout << e << " " << o << endl;  // 先输出偶数和,再输出奇数和
        return 0;
    }
    

    复杂度分析

    循环固定执行100次,次数不随输入变化,所以时间复杂度 O(1);只用了e、o两个累加变量,额外空间复杂度 O(1)。

    • 1