斐波那契数列想必大家都听过,如果感觉斐波那契数列有点陌生的同学,肯定是没有好好学算法。一般在讲解递归的时候,我们都会拿出斐波那契数列这个例子来,因为它实在太经典了,今天我们就来深入研究一下斐波那契数列的解法。
什么是斐波那契数列?
数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。他当时是这样提出的:假设一对刚出生的小兔一个月后就能长成大兔,再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,一年内没有发生死亡,问:一对刚出生的兔子,一年内繁殖成多少对兔子?
形成数列就是:0、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*)
解法一:递归
时间复杂度:O(2ⁿ)
空间复杂度:O(1)
斐波那契数列就是为递归而生的,我们从题中就可以找到它的规律就是后一个数是前两个数之和,它的边界就是