用C++写一个n的阶乘的递归算法
时间: 2024-09-12 17:09:20 浏览: 42
C++递归算法详解.docx
在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;
}
```
阅读全文