用C++写一个n的阶乘的递归算法
时间: 2024-09-12 21:09:20 浏览: 53
在C++中,你可以使用递归的方式来编写计算n的阶乘的函数。递归是一种通过函数自身调用来解决问题的技术,在这个例子中,我们将基本情况设为当n等于0或1时,阶乘结果为1;对于其他正整数n,阶乘是n乘以前面所有自然数的积。
下面是一个简单的C++递归函数实现:
```cpp
#include<iostream>
using namespace std;
// 递归函数计算n的阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 基本情况,阶乘为1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,n阶乘 = n * (n-1)阶乘
}
}
int main() {
int num;
cout << "请输入一个非负整数: ";
cin >> num;
// 检查输入是否合法
if (num < 0) {
cout << "错误:阶乘只对非负整数定义." << endl;
} else {
unsigned long long result = factorial(num);
cout << "The factorial of " << num << " is: " << result << endl;
}
return 0;
}
```
相关问题
用C++写用递归算法求10的阶乘
下面是用 C 写的递归算法求10的阶乘的代码:
```
#include<stdio.h>
int fact(int n) {
if (n == 0) { // 边界条件
return 1;
} else {
return n * fact(n - 1); // 递归调用
}
}
int main() {
int n = 10;
int result = fact(n);
printf("%d的阶乘为%d\n", n, result);
return 0;
}
```
这段代码的输出结果是:
```
10的阶乘为3628800
```
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;
}
```
阅读全文