递归求阶乘和c+++
时间: 2024-02-06 19:02:57 浏览: 112
递归求阶乘是一种常见的算法,下面是C++的递归求阶乘代码:
```cpp
#include <iostream>
using namespace std;
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
cin >> n;
cout << factorial(n) << endl;
return 0;
}
```
这个代码中,factorial函数是递归函数,它的作用是求n的阶乘。当n等于0时,递归结束,返回1;否则,递归调用factorial(n-1),并将结果乘以n,得到n的阶乘。
相关问题
写一个用栈实现递归计算阶乘的c++代码
好的,下面是用栈实现递归计算阶乘的c++代码:
```c++
#include <iostream>
#include <stack>
using namespace std;
int factorial(int n) {
stack<int> s;
s.push(n);
int result = 1;
while (!s.empty()) {
int x = s.top();
s.pop();
result *= x;
if (x > 1) {
s.push(x - 1);
}
}
return result;
}
int main() {
int n;
cout << "请输入一个整数:";
cin >> n;
cout << n << "的阶乘是:" << factorial(n) << endl;
return 0;
}
```
希望对您有帮助!
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相乘返回。
阅读全文