用c++完成以下题目:利用递归写出n的阶乘
时间: 2023-08-04 14:29:28 浏览: 103
好的,以下是用C++递归方式实现求n的阶乘的代码:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0 || n == 1) { // 递归终止条件
return 1;
}
return n * factorial(n-1); // 递归调用
}
int main() {
int n;
cout << "请输入一个正整数n: ";
cin >> n;
int result = factorial(n);
cout << n << "的阶乘是: " << result << endl;
return 0;
}
```
在上述代码中,我们首先声明了一个递归函数 `factorial()`,它的参数是一个整数 `n`,返回值也是一个整数。然后在函数中,我们设置了递归终止条件:当 `n` 为0或1时,阶乘为1,直接返回1。否则,我们用递归方式调用 `factorial()` 函数,传入参数 `n-1`,并将返回的结果与 `n` 相乘,最终得到 `n` 的阶乘。在主函数中,我们接收用户输入的整数 `n`,并调用 `factorial()` 函数计算 `n` 的阶乘,最后输出结果。
注意,递归函数调用时要注意递归深度,如果递归深度过深,可能会导致栈溢出等问题。因此,在实际应用中,需要根据具体情况来设置递归深度或者使用非递归方法实现。
阅读全文