int Feb(int n)
{
if(n<=2)
{
return 1;
}
return Feb(n-1)+Feb(n-2);
}
新手想问下c语言用递归方法写 求第n个数的斐波那契数这个函数有没有办法优化一下,如果输入的n值大一点的话,电脑会重复计算很多次,出结果很慢,不想用循环的方法写,求一个递归的方法
Feb函数中调用了自己,这就是递归函数的写法,你这个代码已经是递归函数了,这段代码已经是最简洁的写法了,用递归的话已经没法再优化了,n大了计算肯定慢。
所以,如果一定要用递归,这个代码已经是最优的了。如果不用递归,用循环计算会快一些。
没有办法这已经是最优的了,递归在性能上肯定是比不过迭代的。
你可以尝试申请算力在线解决。
n多大会出结果很慢
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!递归下无解,更高级解决斐波那契数的方法就DP了。
只不过DP会费一些空间把之前的结果存起来以防再算一遍,空间换时间