关于递归与使用数组记忆化
Fibbonacci Number
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.
Input
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.
you can use 64bit integer: __int64 重要提示!!
##题解
仔细读题 N的范围确定!!
常规调用函数肯定超时,重复计算的太多了,所以把题目要求范围内的结果算出来就行了
简单点 直接上代码
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{ __int64 a[52];
int i,j,n;
a[0]=0;
a[1]=1;
for( i=2;i<52;i++)
a[i]=a[i-1]+a[i-2];
while(scanf("%d",&n)!=EOF&&n!=-1)
{
printf("%I64d\n",a[n]);
}
return 0;
}