酷代码 AI
菜单
服务商

C++ 实现不大于 n 的正整数阶乘和的计算

以下是使用 C++ 实现计算不大于 `n` 的正整数的阶乘的和的代码: ```cpp #include <iostream> using namespace std; // 计算阶乘的函数 int factorial(int num) { int result = 1; // 循环计算阶乘 for (int i = 1; i <= num; i++) { result *= i; } return result; } int main() { int n; // 从标准输入读取正整数 n cin >> n; int sum = 0; // 循环计算 1 到 n 的阶乘的和 for (int i = 1; i <= n; i++) { sum += factorial(i); } // 输出阶乘的和 cout << sum << endl; return 0; } ``` ### 代码解释: 1. **`factorial` 函数**:该函数接受一个整数 `num` 作为参数,通过一个 `for` 循环计算 `num` 的阶乘,并返回结果。 2. **`main` 函数**: - 从标准输入读取一个正整数 `n`。 - 初始化一个变量 `sum` 用于存储阶乘的和。 - 使用一个 `for` 循环,从 1 到 `n` 遍历,调用 `factorial` 函数计算每个数的阶乘,并将结果累加到 `sum` 中。 - 最后输出 `sum` 的值。 ### 复杂度分析: - **时间复杂度**:$O(n^2)$,因为对于每个数 `i`,计算阶乘的时间复杂度为 $O(i)$,总的时间复杂度为 $1 + 2 + 3 + \cdots + n = \frac{n(n + 1)}{2}$,即 $O(n^2)$。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 478点数解答 | 2026-03-21 21:38:23]

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