在C++中,使用递归算法实现阶乘计算的方法如下:
#include <iostream>
// 阶乘函数声明
unsigned long long factorial(int n);
int main() {
int number;
std::cout << "请输入一个正整数: ";
std::cin >> number;
// 检查输入是否为正整数
if (number < 0) {
std::cout << "输入错误!请输入一个正整数。" << std::endl;
return 1;
}
// 计算阶乘并输出结果
unsigned long long result = factorial(number);
std::cout << number << "的阶乘是: " << result << std::endl;
return 0;
}
// 阶乘函数定义
unsigned long long factorial(int n) {
// 基本情况:0! = 1 和 1! = 1
if (n == 0 || n == 1) {
return 1;
}
// 递归情况:n! = n * (n-1)!
return n * factorial(n - 1);
}
这个程序首先包含了
factorial函数的实现基于递归算法。当n为0或1时,函数返回1(基本情况)。否则,函数返回n乘以factorial(n-1)的结果(递归情况)。这将一直递归下去,直到n减小到0或1。