在C++中,遞歸函數是一種調用自身的函數。要實現遞歸函數,您需要定義一個基本情況(base case)和一個遞歸情況(recursive case)?;厩闆r是函數處理的最簡單問題,可以直接解決,而遞歸情況則將問題分解為更小的部分,并調用自身來解決這些更小的部分。
以下是一個簡單的C++遞歸函數示例,用于計算階乘:
#include <iostream>
// 階乘遞歸函數
unsigned long long factorial(int n) {
// 基本情況:0! = 1
if (n == 0) {
return 1;
}
// 遞歸情況:n! = n * (n-1)!
else {
return n * factorial(n - 1);
}
}
int main() {
int number;
std::cout << "Enter a non-negative integer: ";
std::cin >> number;
// 計算階乘并輸出結果
unsigned long long result = factorial(number);
std::cout << number << "! = " << result << std::endl;
return 0;
}
在這個示例中,factorial函數首先檢查基本情況(n == 0),如果滿足基本情況,則直接返回結果(1)。如果不滿足基本情況,函數將問題分解為更小的部分(n * factorial(n - 1)),并調用自身來解決這些更小的部分。最后,main函數接收用戶輸入的非負整數,并調用factorial函數計算階乘,然后輸出結果。