关于JS递归函数求斐波那契数列两种实现方法
2019-10-14 20:42 覃振鸿 阅读(1352) 评论(0) 编辑 收藏 举报百度已经解释的很详细了,但是不写注释还真是看不懂,递归,就直接套公式了,for循坏,我们就用EXCEL看一下规律
可以看到B是A+B的和,A往后就是B的值,所以我们需要第三个变量来保存他们的和,取出B的值给A,再把C的值给B,以此类推,上代码
//F(n)=F(n-1)+F(n-2) console.log('---------------递归实现---------------') function getFib(x) { if(x==1 || x==2){// return 1; } return getFib(x-1)+getFib(x-2); } for(var i=1;i<=10;i++){ console.log('斐波那契数第'+i+'列:'+getFib(i)); } console.log('---------------FOR实现---------------') //for循坏版 function demo(n) { var a=1; var b=a; var c; for (var i = 1 ; i <= n ; i++){ if(i<3){ console.log('斐波那契数第'+i+'列:'+a); continue; } else { c=a+b;//c就是第二个B的值 a=b;//原来B的值赋给A b=c;//他们的和变成B console.log('斐波那契数第'+i+'列:'+b); } } } demo(10);