本文共 831 字,大约阅读时间需要 2 分钟。
递归、递推计算斐波那契数列第n项的值:
1 #include2 long long fact(int n); //【递推】计算波那契数列第n个数 3 long long fact2(int n);//【递归】 4 int main(int argc, char *argv[]) 5 { 6 int i=1; 7 while(i<=10) 8 { 9 printf("%d %I64d %I64d\n",i,fact(i),fact2(i));10 i++;11 }12 return 0;13 }14 long long fact(int n) //【递推】计算波那契数列第n个数 15 {16 long long a,b,c;17 a=1;18 b=1;19 if(n==1||n==2) return 1;20 else if(n<1) return -1;21 else22 {23 n=n-2;24 while(n>0)25 {26 c=a+b;27 a=b;28 b=c;29 n--;30 }31 return c;32 }33 }34 long long fact2(int n)//【递归】 35 {36 if(n<0) return -1;37 else if(n==1||n==2) return 1;38 else 39 {40 return fact2(n-1)+fact2(n-2);41 }42 }
转载地址:http://xxagx.baihongyu.com/