js - 利用递归函数求 1 ~ n 的阶乘 1*2*3*4*.......n

递归的思想

  1. 函数的内部 自己调用自己,就是递归 (避免死循环,加退出条件)
 function close(n) {
        if (n == 1) {
            return 1
        }
        return n * close(n - 1)
    }
    console.log(close(3))
        // 思路:1:  如果传入的值是1.1递归相乘,得到的还是1,会进入死循环,所以,如果传入的值是1,直接return 1
        // 2:假设当前传入的是3, return 3 * close(3-1) => return 3 * close(2)
        // 3: close(2)继续执行  return 3 * (2 * close(2-1)) => return 3 * (2 * close(1))
        // 4: close(1)继续执行 return 1 ,然后到第三步,return 3 * (2 * close(1)) => return 3 * (2 * 1) => return 3*2 => 6

递归实现斐波那契

不管用户输入的是哪个值,我们只需要知道输入的前一项,和前前一项就行
如果输入的是1,2 前两项都是1 ,所以直接返回1
1,1,2,3,5,8,13,21…

function fb(n) {
        if (n === 1 || n === 2) {
            return 1
        }
        return fb(n - 1) + fb(n - 2)
    }
    console.log(fb(3))

具体步骤和阶乘一样~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值