hdu Fibonacci

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <algorithm>
 5 using namespace std;
 6 
 7 int f[30],n;
 8 
 9 int main()
10 {
11     f[0]=0;
12     f[1]=1;
13     for(int i=2; i<21; i++)
14     {
15         f[i]=f[i-1]+f[i-2];
16     }
17     while(scanf("%d",&n)!=EOF)
18     {
19         if(n<=20)
20         {
21             printf("%d\n",f[n]);
22             continue;
23         }
24         else
25         {
26             double m=-0.5*log(5.0)/log(10.0)+((double)n)*log((sqrt(5.0)+1.0)/2.0)/(log(10.0));
27             m-=floor(m);
28             m=pow(10.0,m);
29             while(m<1000)
30             {
31                 m*=10;
32             }
33             printf("%d\n",(int)m);
34         }
35     }
36     return 0;
37 }
View Code

 

posted @ 2014-04-12 19:19  null1019  阅读(144)  评论(0编辑  收藏  举报