您的位置:首页 > 其它

HDOJ 2070 Fibbonacci Number

2014-07-25 10:41 120 查看

Fibbonacci Number

[align=left]Problem Description[/align]
Your objective for this question is to develop a program which will generate a fibbonacci number. The fibbonacci function is defined as such:

f(0) = 0

f(1) = 1

f(n) = f(n-1) + f(n-2)

Your program should be able to handle values of n in the range 0 to 50.

 
[align=left]Input[/align]
Each test case consists of one integer n in a single line where 0≤n≤50. The input is terminated by -1.
 
Output
Print out the answer in a single line for each test case.
 
[align=left]Sample Input[/align]

3
4
5
-1

 
[align=left]Sample Output[/align]

2
3
5

HintNote:
you can use 64bit integer: __int64

 
//打表(AC)

#include<stdio.h>

 __int64 n[56]={0,1};

void f()



      for(int i=2;i<=55;i++)

  {

   n[i]=n[i-1]+n[i-2];

  }

}

int main()

{   f();

    int a;

    while(scanf("%d",&a)&&a!=-1)

    {

       printf("%I64d\n",n[a]);

    }

    return 0;

}

    

//普通(AC)

#include<stdio.h>

int main()

{

 int n,i;

 __int64 s[100000];

 while(scanf("%d",&n)&&n!=-1)

 {

  s[0]=0;

  s[1]=1;

  for(i=2;i<=n;i++)

  {

   s[i]=s[i-1]+s[i-2];

  }

  printf("%I64d\n",s
);

 }

 return 0;

}

 

//超时

#include<stdio.h>

__int64 f(int i)

{

     if(i==0)   return 0;

     else if(i==1)   return 1;

     else return f(i-1)+f(i-2);

}

int main()

{

    __int64 f(int i);

    int a;

    while(scanf("%d",&a)&&a!=-1)

    {

       printf("%I64d\n",f(a));

    }

    return 0;

}

    

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: