斐波那契数列由如下递推关系式定义:F(0) = 0,F(1)=1,F(n)=F(n-1)+F(n-2) if n>1。
解法:
斐波那契数列是二阶递推数列,所以存在一个2*2的矩阵A,使得:
(Fn, Fn-1) = (Fn-1, Fn-2)*A
求得A=(1 1)
(1 0)
那么求数列的第n项就是等于求矩阵A的第n-1次幂,计算的速度非常快,时间复杂度为O(logn)。
首先我们用long long 型表示数列中的元素,它只能表示20位的整数,能表示的范围太小,最多第92个元素。
Read full article from 编程之美2.9――斐波那契数列 - 林云zju的专栏 - 博客频道 - CSDN.NET
No comments:
Post a Comment