Fibonacci 實現的3種方法

2021-06-19 16:35:00 字數 808 閱讀 4813

斐波那契數列,又稱**分割數列,指的是這樣乙個數列:0、1、1、2、3、5、8、13、21、……

定義如下:

第一種方法:

在當初第一次接觸遞迴的時候,例子就是fibonacci數的計算。實現**如下:

long long fibonacci1(int n)

第二種方法:

通過使用兩個額外的空間換取時間的方法來改善第一種方法。實現**如下:

long long fibonacci2(int n)

long long m_00;

long long m_01;

long long m_10;

long long m_11;

};

//矩陣相乘

matrix2_2 matrixmultiply(const matrix2_2 &matrix1,const matrix2_2 &matrix2)

//求^(n-1)的矩陣

matrix2_2 matrixpower(int n)

else if(1==n%2)

return matrix;

}

long long  fibonacci3(int n)

Fibonacci數列的兩種實現方式

斐波那契數列的形式為 1,1,2,3,5,8,13,21.從第三項開始,後面的每一項都是前面兩項的和。實現的方式有一下 兩種 一 遞迴方式實現 def fib n if n 1 print 數值錯誤!return 1 if n 1 or n 2 return 1 return fib n 1 fib...

關於Fibonacci的實現

fibonacci的實現可以用遞迴呼叫 private static int getfibo int n public static void main string args while n 2 for int i 0 i 但這麼實現最大的問題是如果n特別大時,就可能會出問題了,比如stackov...

Fibonacci數列的一種經典遞迴實現

剛才.net課程期末考試,正好最後一題考的是遞迴實現fibonacci數列.順便就把 打出來發在這裡.雖然沒什麼技術含量 wink 主要特性就是使用buffer將先前已經計算過的fibonacci數列的值儲存下來,減少遞迴時的重複計算開銷.c 沒直接的lazy evaluation,這種採取buff...