在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)),然后調用自身來解決這些子問題。最后,當遞歸到基本情況時,函數開始返回值并逐級解決更大的問題。