hdu 1568 Fibonacci

来源:互联网 发布:淘宝网购汽车座椅 编辑:程序博客网 时间:2024/06/05 20:57

求斐波那契数 的 前4位。。

前20个数    是 4位 以内的。。打表输出。。

之后的斐波那契数列:

当n比较大时。可近似写为:1/sqrt(5)*((1+sqrt(5))/2)^n;     

((1-sqrt(5))/2)^n 近似为0;

然后用取对数的方法  求 前四位。。

取对数相关题解:http://blog.csdn.net/u010489389/article/details/16879365


#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#define pi acos(-1.0)#define e exp(1.0)#define ll long longll a[22];int main(){int i,j,k;a[0]=0,a[1]=1;for(i=2;i<=20;i++)a[i]=a[i-1]+a[i-2];int n;while(~scanf("%d",&n)){if(n<=20)printf("%d\n",a[n]);else{double temp=-0.5*log10(5.0)+n*log10((1+sqrt(5.0))/2);temp-=(int)temp;temp=pow(10.0,temp);int ans=(int)(temp*1000);printf("%d\n",ans);}}}


原创粉丝点击