JS实现斐波那契数列的五种方式(小结)
下面是五种实现斐波那契数列的方法
循环
functionfibonacci(n){
varres1=1;
varres2=1;
varsum=res2;
for(vari=1;i
普通递归
functionfibonacci(n){
if(n<=1){return1};
returnfibonacci(n-1)+fibonacci(n-2);
}
尾递归
functionfibonacci(n,ac1=1,ac2=1){
if(n<=1){returnac2}
returnfibonacci(n-1,ac2,ac1+ac2)
}
Generator函数和for...of循环
//Generator函数和for...of循环
function*fibonacci(){
let[prev,curr]=[0,1];
//foo(;;)相当于死循环等于while(1)
for(;;){
yieldcurr;
[prev,curr]=[curr,prev+curr];
}
}
for(letnoffibonacci()){
if(n>1000)break;
console.log(n);
}
闭包实现
constfibonacci=function(){
varmem=[0,1];
varf=function(n){
varres=mem[n];
if(typeofres!=='number'){
mem[n]=f(n-1)+f(n-2);
res=mem[n];
}
returnres;
}
returnf;
}();
到此这篇关于JS实现斐波那契数列的五种方式(小结)的文章就介绍到这了,更多相关JS斐波那契数列内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。