您的位置:首页 > 其它

hdu 1568 Fibonacci

2013-11-22 15:42 260 查看
求斐波那契数 的 前4位。。

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

之后的斐波那契数列:


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

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

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

取对数相关题解:/article/9019621.html

#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 long

ll 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
);
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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: