zoukankan      html  css  js  c++  java
  • HDU Fibonacci

    Fibonacci

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 448 Accepted Submission(s): 243
    Problem Description
    2007年到来了。经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列
    (f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部给背了下来。
    接下来,CodeStar决定要考考他,于是每问他一个数字,他就要把答案说出来,不过有的数字太长了。所以规定超过4位的只要说出前4位就可以了,可是CodeStar自己又记不住。于是他决定编写一个程序来测验zouyu说的是否正确。
     
    Input
    输入若干数字n(0 <= n <= 100000000),每个数字一行。读到文件尾。
     
    Output

                输出f[n]的前4个数字(若不足4个数字,就全部输出)。
     
    Sample Input
    0
    1
    2
    3
    4
    5
    35
    36
    37
    38
    39
    40
     
    Sample Output
    0
    1
    1
    2
    3
    5
    9227
    1493
    2415
    3908
    6324
    1023
     
     
    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    #define A (sqrt(5.0)+1.0)/2
    using namespace std;
    int Fibonacci(int n)
    {
        if(n==0)return 0;
        else if(n==1)return 1;
        else return Fibonacci(n-1)+Fibonacci(n-2);
    }
    int main()
    {
        int n;
        double fibon;
        while(scanf("%d",&n)!=EOF)
        {
            if(n<21)
            printf("%d\n",Fibonacci(n));
            else
            {
                fibon = (-0.5)*log10(5.0)+((double)n)*log10(A);
                fibon -=(int)fibon;
                fibon = pow(10.0,fibon);
                while(fibon<1000)fibon =fibon*10.0;
                printf("%d\n",(int)fibon);
            }
        }
        return 0;
    }
  • 相关阅读:
    POJ 1328 Radar Installation
    POJ 1700 Crossing River
    POJ 1700 Crossing River
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3253 Fence Repair (贪心,优先队列)
    poj 3069 Saruman's Army(贪心)
    poj 3069 Saruman's Army(贪心)
    Redis 笔记与总结2 String 类型和 Hash 类型
    数据分析方法有哪些_数据分析方法
    数据分析方法有哪些_数据分析方法
  • 原文地址:https://www.cnblogs.com/newpanderking/p/2117677.html
Copyright © 2011-2022 走看看