菲波纳契数列第2007个数是多少

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:56:07
1,1,2,3,5,8,13,21,34,55,...以此加下去,当加到第2007个数的时候是什么。注意是2007个。
我只想知道第2007个数是多少。当然你们做的程序发给我也可以。我的QQ:378777789

答案是
[(1+5^0.5)^2007-(1-5^0.5)^2007]/(5^0.5)/2^2007
(5^0.5是根号5)(这个数大于2^2005,2^2005有好几百位数,你不可能把它全写出来的)
这个答案已无法化简了
这个数值很大,非要计算出每一位的具体值是不可能的
用计算机算也不可能算出来的,只能给你一个近似的指数形式的值。
下面是数学上的解法。

下面用特征根法求它的通项(如果想了解具体的特征根法的原理请找一本竞赛书,上面会有的)
a[1]=1,a[2]=1
a[n+2]=a[n]+a[n+1]
上式中通项公式的特征根方程为x^2=x+1
故特征根值为x1=(1+5^0.5)/2,x2=(1-5^0.5)/2
(5^0.5是根号5)
故a[n]=A*(x1)^n+B*(x2)^n
利用a[1]=1,a[2]=1代入上式,两个方程解两个未知数,
可求出A=1/(5^0.5),B=-1/(5^0.5),
再把n=2007代入
即得a[2007]
附:(c语言的程序设计)
#include<stdio.h>
void main()
{
int n,i;
double s=f1=f2=1;
printf("putin the number:");
scanf("%d",&n);
for(i=1,i<n-1,i++)
{f1=f2;
f2=s;
s=f1+f2;
}
printf("the%d number is%e\n",n,s);
}
要求第2007个数就输入2007就可以了.
由于这个数太大了,用整型的话会溢出,故只好用用double型,且用指数形式输出.
上面那位老兄的程序,数值会溢出的
如果有哪一部分不懂请指明,我再修复答案.

编个程序算一下吧

class AA