用c++求1阶乘到50阶乘的和
时间: 2024-10-21 13:04:49 浏览: 27
C++求阶乘的两种方法
在C++中,计算1到50的阶乘之和,可以使用循环结构结合递归或者直接计算(如果数值较小)。由于阶乘的增长非常快,对于较大的数,直接计算可能会遇到溢出的问题。因此,我们可以选择动态规划的方式存储中间结果,避免重复计算。
下面是一个简单的示例,使用迭代和`long long`数据类型来存储中间结果:
```cpp
#include <iostream>
using namespace std;
// 动态规划计算阶乘
long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int limit = 50;
long long sum = 0;
for (int i = 1; i <= limit; ++i) {
sum += factorial(i);
}
cout << "1到" << limit << "阶乘的和为: " << sum << endl;
阅读全文