溫馨提示×

如何用C++遞歸算法解決斐波那契數(shù)列

c++
小樊
81
2024-09-27 10:30:10
欄目: 編程語言

在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)化計算過程。

0