c++用递归算法求 1!+2!+3! +...+n!
时间: 2023-07-31 09:11:01 浏览: 127
可以使用递归算法来解决这个问题,具体实现如下:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n <= 1) { // 基线条件
return 1;
}
else { // 递归条件
return n * factorial(n - 1);
}
}
int sum_of_factorials(int n) {
if (n <= 1) { // 基线条件
return 1;
}
else { // 递归条件
return factorial(n) + sum_of_factorials(n - 1);
}
}
int main() {
int n = 5;
int sum = sum_of_factorials(n);
cout << "1!+2!+3!+...+" << n << "! = " << sum << endl;
return 0;
}
```
在这个程序中,我们定义了两个递归函数 `factorial` 和 `sum_of_factorials`。`factorial` 函数用于计算阶乘,`sum_of_factorials` 函数用于计算阶乘的和。在每个函数中,我们都有一个基线条件和一个递归条件。如果 `n` 的值小于或等于 1,我们将返回 1 作为基线条件。否则,我们将根据递归条件进行计算。在 `sum_of_factorials` 函数中,我们将先计算 n 的阶乘,然后将它加到 n-1 的阶乘和中。最后,在主函数中,我们将调用 `sum_of_factorials` 函数来计算 1!+2!+3!+...+n! 的值,并将其打印出来。
阅读全文