Java遞迴實現斐波那契數列

來源:酷知科普網 2.2W

求斐波那契數列是各程式語言中常見的演算法題,斐波那契數列(Fibonacci sequence),又稱黃金分割數列,因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。該數列表現形式為:1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

Java遞迴實現斐波那契數列

操作方法

(01)在正式求解斐波那契數列前,我們先來看看數學上有名的兔子數列,假設一對剛出生的小兔子一個月後就能長成大兔子,再過一個月就能生下一對小兔子,並且此後每個月都生一對小兔子,一年內沒有死亡,請問一對剛出生的兔子,在一年內能繁殖成多少對兔子?根據下圖的推算我們可以總結出如下的規律:第三個數是前兩數之和,第四個數是第二個數和第三個數之和,...,以此類推。

Java遞迴實現斐波那契數列 第2張

(02)求斐波那契數列方法一:使用陣列來求解,定義一個固定長度的陣列,將陣列的第一個和第二個元素都置為1,遍歷陣列並對其他元素賦值,求出的最後一個數的值即為斐波那契數列值。

Java遞迴實現斐波那契數列 第3張

(03)方法一不好的地方在於求的斐波那契數是固定的,那麼如何才能做到求任意數字的斐波那契數列呢?我們使用遞迴呼叫的方式,將需要求的數字通過引數傳遞到方法中,最後呼叫方法來求解,如下圖所示。

Java遞迴實現斐波那契數列 第4張

(04)斐波那契數列在物理學,經濟學以及自然界中都有廣泛的應用。一些植物的花瓣、萼片、果實的數目以及排列的方式,貝殼螺旋輪廓線等,都符合斐波那契數列這一神奇的規律,例如向日葵,菊花菠蘿等。

Java遞迴實現斐波那契數列 第5張
Java遞迴實現斐波那契數列 第6張
熱門標籤