ppt Fibonacii数列的第n项------记忆式搜索

#include <stdio.h>
#define MAX 50+1
int a[MAX];
int fib(int n)
{

   if (a[n]==-1)     return   a[n]=fib(n-1)+fib(n-2);
           else          return   a[n];
}
int main( )
{

int i,n;
for(i=1; i<MAX; i++)
a[i]=-1;
a[0]=a[1]=1;
scanf("%d",&n);
printf("%d " ,fib( n ) );
}

 


*******************************************************************

#include <stdio.h>
#define MAX 50+1
int a[MAX];
int fib(int n)
{

if (a[n]!=-1)          a[0]=a[1]=1;
if (a[n]==-1)     return a[n]=fib(n-1)+fib(n-2);
       else            return a[n];
}
int main( )
{ int i,n;
for(i=1; i<MAX; i++)
a[i]=-1;

scanf("%d",&n);
printf("%d " ,fib( n ) );
}

原文地址:https://www.cnblogs.com/2014acm/p/3907879.html