求 (即1!+2!+3!+4!+...+20! )。
时间: 2023-11-24 10:08:00 浏览: 29
这个问题可以通过循环和递归两种方式来解决。下面是两种方法的代码实现:
1. 循环方式:
```c++
#include <iostream>
using namespace std;
int main() {
int sum = 0;
int factorial = 1;
for (int i = 1; i <= 20; i++) {
factorial *= i;
sum += factorial;
}
cout << "1!+2!+3!+...+20! = " << sum << endl;
return 0;
}
```
2. 递归方式:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 1) {
return 1;
}
return n * factorial(n - 1);
}
int main() {
int sum = 0;
for (int i = 1; i <= 20; i++) {
sum += factorial(i);
}
cout << "1!+2!+3!+...+20! = " << sum << endl;
return 0;
}
```
以上两种方法都可以得到相同的结果,即1!+2!+3!+...+20!的值。需要注意的是,当计算20!时,需要使用long long类型来存储结果,否则会出现溢出的情况。