#include <stdio.h> int fib(int n) { if(n<=1) return 1; else return fib(n-1)+fib(n-2); } int main( ) { int n; scanf("%d",&n); printf("%d\n" ,fib(n) ); }
#include <stdio.h> int fib(int n) { if(n<=1) return 1; else return fib(n-1)+fib(n-2); } int main( ) { int n; while(scanf("%d",&n)) printf("%d\n" ,fib(n) ); }
230=(210)3====109
240=(210)4====1012 250===1015
2的10次方是1024
2的46次方是1024的5次方除以2的4次方=70368744177664.00=======1013
#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) return a[n]=fib(n-1)+fib(n-2); // 如果a[n]==-1 ,,,没算过
else return a[n];
}
int main( )
{
int i,n;
for(i=1; i<MAX; i++) a[i]=-1; //做记号 ,,,所有元素 初值 -1
a[0]=a[1]=1; // 赋值,,初始化,,,,已知条件
scanf("%d",&n);
printf("%d\n" ,fib( n ) ); }
原文:http://www.cnblogs.com/2014acm/p/3905832.html