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

 

你可能感兴趣的:(fibonacci)