在C++中,使用遞歸算法實(shí)現(xiàn)階乘計(jì)算的方法如下:
#include <iostream>
// 階乘函數(shù)聲明
unsigned long long factorial(int n);
int main() {
int number;
std::cout << "請輸入一個正整數(shù): ";
std::cin >> number;
// 檢查輸入是否為正整數(shù)
if (number < 0) {
std::cout << "輸入錯誤!請輸入一個正整數(shù)。" << std::endl;
return 1;
}
// 計(jì)算階乘并輸出結(jié)果
unsigned long long result = factorial(number);
std::cout << number << "的階乘是: " << result << std::endl;
return 0;
}
// 階乘函數(shù)定義
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函數(shù)的實(shí)現(xiàn)基于遞歸算法。當(dāng)n為0或1時,函數(shù)返回1(基本情況)。否則,函數(shù)返回n乘以factorial(n-1)的結(jié)果(遞歸情況)。這將一直遞歸下去,直到n減小到0或1。