菲波拉契数列的通项公式– F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n} ;
题目;hdu—-1568;
http://acm.hdu.edu.cn/showproblem.php?pid=1568
题目大意;输出斐波那契数列的后四位;
#include<stdio.h>
#include<math.h>
int fi[21];
int main()
{
int n, i;
fi[0]=0;
fi[1]=1;
for(i = 2; i < 21; i++)
{
fi[i]=fi[i-1]+fi[i-2];
}
while(~scanf("%d",&n))
{
if(n<=20)printf("%d\n",fi[n]);
else{
double p = n*log10((1+sqrt(5.0))*0.5)-0.5*log10(5.0);
p = p -(int)p;
int res = pow(10.0,p)*1000;
printf("%d\n",res);
}
}
return 0;
}