c语言 斐波那契数列c语言递归递归,代码如下,每次结果都是 1,2,3,5.... 没看出来哪里错了,求指教

现在程序员不好招啊毕业生也荇吧,但要考考算法基本功

计算机毕业的大学生没一个做出来的。 真是郁闷了 这题目应该是上学时经常用到的题目吧。

我自己用 python 来实現一下

#递归实现(只是算法实现,效率不考虑)

递归算法:执行代码并没执行唍全的时候调用自己本身,然后等待条件不满足递归的时候完全执行代码,执行完全后返回上一层执行未完成的部分;

递归算法与for,where循环可以相互转换通过一定的方案达到一样的效果,比如for循环可以通过栈实现递归的效果;

递归算法一般用于树的节点的遍历等...

递归算法的重点:参数的设置;

demo:斐波那契数列c语言递归的实现

int n=10;//表示斐波那契数列c语言递归的第十项
//后一项等于前两项相加
 

该demo中,递归时间消耗远大于循环;(递归性能低)

demo2:树的遍历(文件夹遍历)-----真实场景中:文件夹的剪切(Java不提供文件夹的剪切方法需要自己代码实现)

 //獲取当前文件夹下的所有文件夹、文件
 
 
类似于树状的结构,使用递归效率较高;
如上述demo中的文件夹的遍历又比如,快速排序算法的实现:
demo3:快速排序的实现
 
 
 //找到一个标识:一般为数组的第一个值
 //对一个数组进行循环遍历i从左往右,j从右往左
 //j先走与key进行比较,比key小则赋徝给i(对应的值)
 //j赋值完就不动了i开始走,遇到比key大的停止,赋值给j对应的数字
 
 //当ij相遇,key的值赋值给那个位置的数
 

前两个值都为1该数列从第三位開始,每一位都是当前位前两位的和

//后面的值都是当前值的前一个值加上前两个值的和

我要回帖

更多关于 斐波那契数列c语言递归 的文章

 

随机推荐