酷代码 AI
菜单
服务商

C++ 实现根据输入正整数奇偶性计算偶数和或约数和

### 👀代码功能分析 这段 C++ 代码实现了根据用户输入的正整数 `n` 进行不同计算的功能: - 若 `n` 为奇数,计算 1 到 `n` 之间所有偶数之和。 - 若 `n` 为偶数,计算 `n` 的所有约数之和。 ### 🌟代码解释 1. **`sumOfEvenNumbers` 函数**: - 该函数接收一个整数 `n` 作为参数。 - 使用 `for` 循环从 2 开始,以 2 为步长遍历到 `n` 之前的所有偶数,将这些偶数累加到变量 `sum` 中。 - 最后返回累加结果。 2. **`sumOfDivisors` 函数**: - 该函数接收一个整数 `n` 作为参数。 - 使用 `for` 循环从 1 遍历到 `n`,判断每个数是否为 `n` 的约数(即 `n % i == 0`),若是则累加到变量 `sum` 中。 - 最后返回累加结果。 3. **`main` 函数**: - 提示用户输入一个正整数 `n`。 - 通过判断 `n` 是否为奇数(`n % 2 == 1`),调用不同的函数进行计算。 - 输出计算结果。 ### 💡优化建议 - **输入验证**:可以添加输入验证,确保用户输入的是正整数。 - **函数注释**:可以进一步完善函数的注释,提高代码的可读性。 ### 优化后的代码 ```cpp #include <iostream> // 当 n 为奇数时,计算 1 到 n 之间所有偶数之和 int sumOfEvenNumbers(int n) { int sum = 0; // 从 2 开始,以 2 为步长遍历,累加偶数 for (int i = 2; i < n; i += 2) { sum += i; } return sum; } // 当 n 为偶数时,计算 n 的所有约数之和 int sumOfDivisors(int n) { int sum = 0; // 遍历 1 到 n 的所有数 for (int i = 1; i <= n; i++) { // 如果 i 是 n 的约数,则累加到 sum 中 if (n % i == 0) { sum += i; } } return sum; } int main() { int n; while (true) { std::cout << "请输入一个正整数 n: "; std::cin >> n; if (n > 0) { break; } std::cout << "输入无效,请输入一个正整数。" << std::endl; } if (n % 2 == 1) { // n 是奇数,计算 1 到 n 之间所有偶数之和 int result = sumOfEvenNumbers(n); std::cout << "1 到 " << n << " 之间所有偶数之和为: " << result << std::endl; } else { // n 是偶数,计算 n 的所有约数之和 int result = sumOfDivisors(n); std::cout << n << " 的所有约数之和为: " << result << std::endl; } return 0; } ``` ######[AI问答 | 838点数解答 | 2026-02-28 20:23:59]

相关提问
发财导航,免费问AI
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]