#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int f[21];
int main()
{
int n,i,ans;
double s,t,tmp;
f[0]=0;
f[1]=1;
f[2]=1;
for(i=3;i<=20;i++)//前20的斐波那契数是4位数
f[i]=f[i-1]+f[i-2];
while(scanf("%d",&n)!=EOF)
{
if(n<=20)
printf("%d\n",f[n]);
else
{
s=(1+sqrt(5.0))/2;
tmp=log10(1/sqrt(5.0))+n*log10(s);
t=tmp-(int)tmp+3;
ans=pow(10,t);
if(ans<1000)
ans*=10;
cout<<ans<<endl;
}
}
return 0;
}
hdu1568
最新推荐文章于 2019-11-16 13:07:28 发布