递归

递归

定义

函数在内部调用自身的函数

案例

fn()
function fn(a){
if(a=undefined)a=0;
a++;
if(a>3)return;
fn1(a); //开副本
console.log(a) //副本1执行以后执行
}
function fn1(a){
if(a
=undefined)a=0;
a++;
if(a>3)return;
fn2(a);
console.log(a) //副本2执行完以后执行
}
function fn2(a){
if(a=undefined)a=0;
a++;
if(a>3)return;
fn3(a);
console.log(a) //副本三执行完以后执行
}
function fn3(a){
if(a
=undefined)a=0;
a++;
if(a>3)return; //副本三执行完毕
}

上述等同于
fn()
function fn(a){
if(a===undefined)a=0;
a++;
if(a>3)return;
fn(a); //递归
console.log(a)
}
凡是执行同一个语句块的代码就用递归

斐波那契数列(递归)

function feibo(max,n,m,s){
if(n=undefined)n=0
if(m
=undefined)m=1
if(s===undefined)s=0
s+=m;
if(m+n<max)return feibo(max,m,m+n,s); //跳出此函数执行下个副本
return s //超过max的值才会执行
}
console.log(feibo(100))

或者
var s=0
function feibo(n,m){
s+=m;
if(m+n<100)feibo(m,m+n);
}
feibo(0,1)
console.log(s)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值