Java递归实现斐波那契数列

求斐波那契数列是各编程语言中常见的算法题,斐波那契数列(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张