c++求前n个数的阶乘之合
时间: 2024-08-13 09:00:47 浏览: 55
在 C++ 中,计算前 n 个数的阶乘之和可以通过循环和递归的方式来实现。这里提供一种迭代的方式:
首先,创建一个名为 `factorial_sum` 的函数,接受一个整数 `n` 作为参数。我们需要一个变量来保存阶乘的结果,并初始化为 0(因为 0! 等于 1)。然后从 1 到 n 遍历每个数,对于每个数 i,计算它的阶乘并将其累加到总和上。
以下是示例代码:
```cpp
#include <iostream>
unsigned long long factorial_sum(int n) {
unsigned long long fact = 1;
unsigned long long sum = 0;
for (int i = 1; i <= n; ++i) {
// 计算阶乘
if (i > 1)
fact *= i;
// 累加当前阶乘到总和
sum += fact;
}
return sum;
}
int main() {
int n;
std::cout << "请输入一个正整数 n: ";
std::cin >> n;
std::cout << "前 " << n << " 个数的阶乘之和是: " << factorial_sum(n);
return 0;
}
```
在这个代码里,注意使用了 `unsigned long long` 类型来存储可能较大的阶乘结果,防止溢出。另外,当计算阶乘时,特别检查了 `i > 1` 来避免除以 0 的情况。
阅读全文