在C++中,遞歸函數通常需要一個基本情況(base case)來終止遞歸,以及一個遞歸情況(recursive case)來逐步逼近基本情況。為了實現遞歸,你需要將問題分解為更小的子問題,并將這些子問題作為參數傳遞給遞歸函數。
以下是一個簡單的遞歸函數示例,用于計算階乘:
#include <iostream>
// 遞歸函數,計算階乘
unsigned long long factorial(unsigned int n) {
// 基本情況:0的階乘為1
if (n == 0) {
return 1;
}
// 遞歸情況:n的階乘等于n乘以(n-1)的階乘
else {
return n * factorial(n - 1);
}
}
int main() {
unsigned int n = 5;
std::cout << "Factorial of "<< n << " is: " << factorial(n) << std::endl;
return 0;
}
在這個例子中,factorial
函數接受一個unsigned int
類型的參數n
。基本情況是當n
為0時,返回1。遞歸情況是計算n * factorial(n - 1)
,即將問題分解為更小的子問題(計算(n-1)
的階乘),并將子問題作為參數傳遞給遞歸函數。