int fibonacci1(int n){ //斐波拉契数列———递归
if(n<1) return 0;
if(n==1||n==2) return 1;
return fibonacci1(n-1)+fibonacci1(n-2);
}
int fibonacci2(int n){ //斐波拉契数列———递推
int f0=0,f1=1;
if(n==0||n==1) return n;
int i,f;
for(i=2;i<=n;i++){
f=f0+f1;
f0=f1;
f1=f;
}
return f;
}
int main () {
printf("用递归实现斐波拉契数列\n");
printf("Fib(%d)=%d\n",0,fibonacci1(0));
printf("Fib(%d)=%d\n",1,fibonacci1(1));
printf("Fib(%d)=%d\n",2,fibonacci1(2));
printf("Fib(%d)=%d\n",3,fibonacci1(3));
printf("Fib(%d)=%d\n\n",10,fibonacci1(10));
printf("用递推实现斐波拉契数列\n");
printf("Fib(%d)=%d\n",0,fibonacci2(0));
printf("Fib(%d)=%d\n",1,fibonacci2(1));
printf("Fib(%d)=%d\n",2,fibonacci2(2));
printf("Fib(%d)=%d\n",3,fibonacci2(3));
printf("Fib(%d)=%d\n",10,fibonacci2(10));
return 0;
}