输入n,用最快的方法求该数列的第n 项。
分析:在很多C 语言教科书中讲到递归函数的时候,都会用Fibonacci 作为例子。
分析:在很多C 语言教科书中讲到递归函数的时候,都会用Fibonacci 作为例子。
因此很多程序员对这道题的递归解法非常熟悉,但....呵呵,你知道的。
思路:
f(n) = 1*f(n-1) +1* f(n-2);
f(n-1)=1*f(n-1)+ 0*f(n-2);
f(n) 1 1 f(n-1)
f(n-1) 1 0 f(n-2) ,这里是使用的是矩阵,这样可以计算得出f(n),f(n-1) 与 f(1) , f(0) 的矩阵关系。
在计算矩阵的幂的时候可以利用快速矩阵求法。求a的n次方的快速求法:
while(a > 0)
do {