用c++求出1!+2!+3!+…+n!的值
时间: 2023-07-08 12:42:54 浏览: 65
可以使用循环和递归两种方法来求解。
1. 循环方法:
```
#include <iostream>
using namespace std;
int main() {
int n, sum = 0, fac = 1;
cout << "请输入一个整数 n: ";
cin >> n;
for (int i = 1; i <= n; i++) {
fac *= i;
sum += fac;
}
cout << "1!+2!+3!+...+n! = " << sum << endl;
return 0;
}
```
2. 递归方法:
```
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, sum = 0;
cout << "请输入一个整数 n: ";
cin >> n;
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
cout << "1!+2!+3!+...+n! = " << sum << endl;
return 0;
}
```
这两种方法的时间复杂度都是 O(n),但是递归方法可能会占用更多的内存。