斐波那契数列(Fibonacci sequence)是1、1、2、3、5、8、13、21、34、55...
对于斐波那契数列的第n项求解,通常是使用递归方式实现,如下
public static int fbNum(int n) {
if (n==1 || n==2) return 1;
else return fbNum(n-1) + fbNum(n-2);
}
使用递归方式计算斐波那契数时,第n项总是须要先计算出第n-1项和第n-2项,运行时间T(N)T(N-1)+T(N-2)。由于T(N)作为斐波那契数满足同样的递推关系并具有相同的初始条件,因此,T(N)事实上是以斐波那契数相同的速度增长而指数级增长。
另一方面,由于计算F所须要的只是F
和F
,因此,只