递归求n的阶乘
时间: 2023-09-09 20:10:37 浏览: 203
下面是使用递归方式求n的阶乘的代码:
```python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
```
当n等于1时,阶乘为1。当n大于1时,阶乘为n乘以n-1的阶乘。因此,可以使用递归方式计算n的阶乘。
相关问题
非递归求n的阶乘
可以使用循环来非递归地求解n的阶乘。具体实现如下:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入一个正整数n:";
cin >> n;
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
cout << n << "的阶乘为:" << result << endl;
return 0;
}
```
在上面的代码中,我们使用了一个循环,从1到n依次累乘,最终得到n的阶乘。
c++递归算法求阶乘
C++递归算法求阶乘的实现如下:
```cpp
#include <iostream>
int factorial(int n) {
// 基线条件,当n为0或1时,直接返回1
if (n == 0 || n == 1) {
return 1;
}
// 递归调用,将问题规模缩小,求解n-1的阶乘
return n * factorial(n - 1);
}
int main() {
int n;
std::cout << "请输入一个非负整数:";
std::cin >> n;
std::cout << n << "的阶乘是:" << factorial(n) << std::endl;
return 0;
}
```
以上代码中,`factorial`函数使用递归的方式来求解阶乘。当输入的n为0或1时,直接返回1作为基线条件。否则,递归调用`factorial`函数来求解n-1的阶乘,并将结果与n相乘返回。