Febonacci函数-递归法vs循环法
我在学习递归过程中,对于Febonacci函数求解,分别利用递归和循环求解 %%递归法代码
int Febonacci(int n
){
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阶斐波那契函数,利用递归半天出不来结果,而循环法不到一秒钟结果就出来了。