int Feb(int n)
{
if(n<=2)
{
return 1;
}
return Feb(n-1)+Feb(n-2);
}
新手想问下c语言用递归方法写 求第n个数的斐波那契数这个函数有没有办法优化一下,如果输入的n值大一点的话,电脑会重复计算很多次,出结果很慢,不想用循环的方法写,求一个递归的方法
int Feb(int n)
{
if(n<=2)
{
return 1;
}
return Feb(n-1)+Feb(n-2);
}
新手想问下c语言用递归方法写 求第n个数的斐波那契数这个函数有没有办法优化一下,如果输入的n值大一点的话,电脑会重复计算很多次,出结果很慢,不想用循环的方法写,求一个递归的方法
Feb函数中调用了自己,这就是递归函数的写法,你这个代码已经是递归函数了,这段代码已经是最简洁的写法了,用递归的话已经没法再优化了,n大了计算肯定慢。
所以,如果一定要用递归,这个代码已经是最优的了。如果不用递归,用循环计算会快一些。