溫馨提示×

c++斐波那契數(shù)列怎么實(shí)現(xiàn)

c++
小億
115
2023-12-09 10:43:30
欄目: 編程語言

C++實(shí)現(xiàn)斐波那契數(shù)列的一種常見方法是使用遞歸。斐波那契數(shù)列的定義是前兩個(gè)數(shù)字是1,之后的每個(gè)數(shù)字是前兩個(gè)數(shù)字的和。

以下是一個(gè)用遞歸實(shí)現(xiàn)斐波那契數(shù)列的示例代碼:

#include <iostream>

int fibonacci(int n) {
    // 基本情況:當(dāng)n為0或1時(shí),直接返回1
    if (n <= 1) {
        return 1;
    }
    
    // 遞歸調(diào)用:返回前兩個(gè)斐波那契數(shù)的和
    return fibonacci(n-1) + fibonacci(n-2);
}

int main() {
    int n = 10;  // 要計(jì)算的斐波那契數(shù)列的長度
    
    // 輸出斐波那契數(shù)列的前n個(gè)數(shù)字
    for (int i = 0; i < n; i++) {
        std::cout << fibonacci(i) << " ";
    }
    
    return 0;
}

此代碼將輸出斐波那契數(shù)列的前10個(gè)數(shù)字:1 1 2 3 5 8 13 21 34 55。

然而,遞歸實(shí)現(xiàn)的斐波那契數(shù)列在計(jì)算較大的數(shù)時(shí)會(huì)非常慢,因?yàn)樗鼤?huì)重復(fù)計(jì)算許多相同的數(shù)字。為了改進(jìn)性能,可以使用迭代方法或記憶化方法實(shí)現(xiàn)斐波那契數(shù)列。

0