酷代码 AI
菜单
服务商

先输入一个正整数 n n,如果 n n 是奇数,则求 1 1~ n n 之间所有的偶数之和;如果 n n 是偶数,则求 n n 所有的约数之和c++(包括1和本身)。 输入格式 一行,一个正整数 n n。 输出格式 按题目要求输出计算结果。

以下是实现该功能的 C++ 代码: ```cpp #include <iostream> // 函数用于计算 1 到 n 之间所有偶数之和 int sumOfEvenNumbers(int n) { int sum = 0; for (int i = 2; i < n; i += 2) { sum += i; } return sum; } // 函数用于计算 n 的所有约数之和 int sumOfDivisors(int n) { int sum = 0; for (int i = 1; i <= n; i++) { if (n % i == 0) { sum += i; } } return sum; } int main() { int n; std::cin >> n; if (n % 2 == 1) { // 如果 n 是奇数,计算 1 到 n 之间所有偶数之和 std::cout << sumOfEvenNumbers(n) << std::endl; } else { // 如果 n 是偶数,计算 n 的所有约数之和 std::cout << sumOfDivisors(n) << std::endl; } return 0; } ``` 代码解释: 1. `sumOfEvenNumbers` 函数:该函数接受一个整数 `n` 作为参数,用于计算 1 到 `n` 之间所有偶数之和。通过一个 `for` 循环,从 2 开始,每次增加 2,将偶数累加到 `sum` 中。 2. `sumOfDivisors` 函数:该函数接受一个整数 `n` 作为参数,用于计算 `n` 的所有约数之和。通过一个 `for` 循环,从 1 到 `n` 遍历,判断每个数是否是 `n` 的约数,如果是则累加到 `sum` 中。 3. `main` 函数:首先从标准输入读取一个整数 `n`,然后判断 `n` 的奇偶性。如果 `n` 是奇数,则调用 `sumOfEvenNumbers` 函数计算 1 到 `n` 之间所有偶数之和并输出;如果 `n` 是偶数,则调用 `sumOfDivisors` 函数计算 `n` 的所有约数之和并输出。 复杂度分析: - 时间复杂度:`sumOfEvenNumbers` 函数的时间复杂度为 $O(n/2)$,`sumOfDivisors` 函数的时间复杂度为 $O(n)$,因此整个程序的时间复杂度为 $O(n)$。 - 空间复杂度:代码只使用了常数级的额外空间,因此空间复杂度为 $O(1)$。 [2026-02-06 18:37:01 | AI问答 | 626点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多