在C++中,使用遞歸算法解決斐波那契數(shù)列問題非常簡單。以下是一個示例代碼:
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int n;
cout << "請輸入一個正整數(shù): ";
cin >> n;
cout << "斐波那契數(shù)列的第"<< n << "項為: " << fibonacci(n) << endl;
return 0;
}
在這個示例中,我們定義了一個名為fibonacci
的函數(shù),該函數(shù)接受一個整數(shù)參數(shù)n
,并返回斐波那契數(shù)列的第n
項。如果n
小于或等于1,則直接返回n
。否則,我們遞歸地調(diào)用fibonacci
函數(shù),計算斐波那契數(shù)列的第n-1
項和第n-2
項的和。
在main
函數(shù)中,我們從用戶那里獲取一個正整數(shù)n
,并調(diào)用fibonacci
函數(shù)計算斐波那契數(shù)列的第n
項。最后,我們將結(jié)果輸出到控制臺。
需要注意的是,遞歸算法在計算較大的斐波那契數(shù)時可能會導致棧溢出錯誤。為了避免這個問題,可以使用迭代算法或動態(tài)規(guī)劃方法來優(yōu)化計算過程。