#include<stdio.h> int fib1(int); int main(void){ int n; printf("please input the index of fib:"); scanf("%d",&n); printf("the %d fib1 number is %d\n",n,fib1(n)); return 0; } int fib1(int n){ if(n<=0){ return 0; }else if(n<=2){ return 1; }else{ return fib1(n-1)+fib1(n-2); } }
下面是非递归方法写的斐波那契数列
#include<stdio.h> int fib(int); int main(void){ int n; printf("请输入下标:\n"); scanf("%d",&n); printf("the %d fib number is %d\n",n,fib(n)); return 0; } int fib(int n){ int i = 0; int a = 1,b = 1; int result; if(n<=0){ return 0; }else if(n<=2){ return 1; }else{ for(i=3;i<=n;i++){ result = a+b; a=b; b= result; } return result; } }