#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\n" ,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\n" ,fib( n ) );
}
ppt Fibonacii数列的第n项------记忆式搜索
时间: 2024-10-12 15:42:05