递归实例解析

// 递归:自己的函数内部执行自己
// 1:找规律;2:找出口
// 有点:代码简单;精炼;弊端:运算量大 结果最后输出

  //   function fn(){
  //     // 递归;死循环
  //       fn()
  //   }
  //   function fn(n) {
  //     var res = ++n;
  //     console.log(res);
  //     // 找出口
  //     if (res === 10) {
  //       return res;
  //     } else {
  //       return fn(res);
  //     }
  //   }
  //   fn(0);
  //   var value = 0;
  // //   求 1+2+3+...+11 = n+n+1
  //   function sum (n){
  //     console.log(value,'+',n,'=',value+n)
  //       value += n; // 0+1
  //       --n;
  //       console.log(value);
  //       if(n===0){
  //           return value
  //       }
  //       return sum(n) //2
  //   }
  //   sum(11)
  // 求 n 的阶层  n*(n-1)*....*1

  function fn(n){
      if(n === 0 ){
          return 1
      } else {
          return n*fn(n-1)
      }
  }
  console.log(fn(5))
//   递归执行的过程 
//  5   ===> 5*4
//  4   ===> 5*4*3
//  3: ===> 5*4*3*2
//  2: ===> 5*4*3*2*1
//  1:  ===> 120
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值