题解
偶数与奇数的和
1 条题解
-
0
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