##c语言学习之-递归

    技术2023-11-30  112

    Febonacci函数-递归法vs循环法

    我在学习递归过程中,对于Febonacci函数求解,分别利用递归和循环求解 %%递归法代码

    int Febonacci(int n){ //递归结束条件,当n<=2 if(n<=2) return 1; else return Febonacci(n-1)+Febonacci(n-2); }

    而使用循环代码

    int Febonacci_Function(int n){ int i = 3; int num1=1,num2=1,temp; while(i<=n){ temp =num2; num2 +=num1; num1 = temp; i++; } return num2; }

    对比结果,虽然递归法简洁,但是较难理解,而且由于系统在进行函数调用时,需要进行:现场保护-转向目标程序-返回主调函数这个过程。因此使用递归比较费时。 我就以上程序测试,计算102阶斐波那契函数,利用递归半天出不来结果,而循环法不到一秒钟结果就出来了。

    Processed: 0.009, SQL: 10