用递归方法求n!c++
时间: 2023-07-16 16:15:46 浏览: 178
易语言求n!(递归算法)
可以使用递归方法求n!,其中n!表示n的阶乘,即n!=n*(n-1)*(n-2)*...*2*1。
下面是C++代码实现:
```c++
#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;
cout << "请输入一个非负整数n: ";
cin >> n;
cout << n << "! = " << factorial(n) << endl;
return 0;
}
```
在这段代码中,`factorial()`函数使用了递归方法,当n等于0或1时,递归结束,返回1;否则递归调用`factorial(n-1)`函数,将n与n-1相乘。
需要注意的是,递归方法可能会导致栈溢出,因为每次递归都会在堆栈中创建一个新的函数调用,因此如果递归层数太深,就会导致堆栈溢出。在实际开发中,应该尽量避免递归方法过于深层次的调用。
阅读全文