JavaScript中递归函数

JavaScript中递归函数

什么是递归?
就是在函数体内调用本函数。是一种调用模式,是一种逻辑程序基础的体现。

== 递归会消耗大量内存,在实际开发中很少使用==

注意:递归最重要的是终止条件。

利用递归计算n的阶乘

function acc(n){
        if(n<=1){
            return 1;
        }else{
                return n*acc(n-1)
            }
    }
    console.log(acc(4));

这里计算的是4的阶乘;从1开始,return 1;然后2,return 2乘acc(1)——就是2乘1;依次…

利用递归求斐波那契数列(1,1,2,3,5,8,13,21,34,55,89…)

var m=1;
    while(true){
        function fiber(m){
            if(m-1==0 || m-2==0){
                return 1;
            }else{
                    return (fiber(m-1)+fiber(m-2));
                }
        }
        console.log(fiber(m));
        m++;
    }

根据斐波那契数列的特点,m代表数列的第几项,我们可以得到fiber(m)=fiber(m-2)+fiber(m-1);
那么就要求:m>2;所以就用到了if(){}else{} 分支结构。
当m=1,m=2时,return 1;
这里利用了while做了一个死循环,按顺序输出每一项的数字。

不理解可以从利用递归计算 1+2+3+4+5=?开始;

function fn(n){
    if(n<=1){
        return 1;
    }else{
        return n+fn(n-1)
    }
}
console.log(fn(5))

这里n既代表第几项,又代表对应项里的数字
return 当前项n加上前一项的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值