c++递归算法求阶乘
时间: 2024-03-30 08:32:45 浏览: 82
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相乘返回。
相关问题
递归算法求阶乘GCC9.3
递归算法是一种自我调用的算法,通过将问题分解为更小的子问题来解决。对于求阶乘的递归算法,可以定义如下:
```c++
#include <iostream>
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num = 5;
int result = factorial(num);
std::cout << "The factorial of " << num << " is: " << result << std::endl;
return 0;
}
```
在上述代码中,`factorial` 函数通过递归调用自身来计算阶乘。当 `n` 的值为 0 或 1 时,递归终止,返回 1。否则,递归调用 `factorial(n - 1)` 来计算 `n` 的阶乘。
运行上述代码,将输出 `The factorial of 5 is: 120`,表示 5 的阶乘为 120。
c++用递归算法解决阶乘问题,代码写给我
在C++中,你可以使用递归算法来计算阶乘。阶乘是一个数的所有小于及等于它的正整数的乘积,例如5的阶乘(5!)就是5*4*3*2*1。以下是使用递归方法实现阶乘的C++代码示例:
```cpp
#include <iostream>
// 递归函数,用于计算阶乘
int factorial(int n) {
// 基线条件:0和1的阶乘都是1
if (n == 0 || n == 1)
return 1;
// 递归条件:n的阶乘等于n乘以(n-1)的阶乘
else
return n * factorial(n - 1);
}
int main() {
int num;
std::cout << "请输入一个非负整数:";
std::cin >> num;
// 检查输入是否合法
if (num < 0)
std::cerr << "错误:阶乘只对非负整数有效。\n";
else
std::cout << "该数的阶乘是:" << factorial(num) << "\n";
return 0;
}
```
阅读全文