递归输出5的阶乘和详解

本文深入探讨了如何使用递归算法计算5的阶乘,并详细解释了递归执行的过程,帮助读者理解递归的概念及其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

递归输出5的阶乘和详解

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>递归输出5的阶乘</title>
    <script type="text/javascript">
    //递归会先一层一层的调用,然后再一层一层的返回值
      function fn(n){
          if(n==1){
              return 1;
          }
          return n*fn(n-1);
      }
      document.write(fn(5));//输出120

      /* //递归输出5的阶乘的分解
      //当fn(5)调用fn()时,传一个参数5,即函数变为如下
      fn(5)//会接收得到fn(5)传过来的值5*4*3*2*1,即5的阶乘120
      function fn(5){
          if(5==1){
              return 1;
          }
          return 5*fn(5-1);//此处fn(5-1)会再次调用fn(),此时传过去的参数为4
                          //返回值时会接收到fn(4)返回的值4*3*2*1,此处变为return 5*4*3*2*1;
      }
    //fn(5-1)调用函数如下
    function fn(4){
        if(4==1){
            return 1;
        }
        return 4*fn(4-1);//此处fn(4-1)会再次调用fn(),此时传过去的参数为3
                        //返回值时会接收到fn(3)返回给fn(4-1)的值3*2*1,此处变为return 4*3*2*1;
    }
    //fn(4-1)调用函数如下
    function fn(3){
        if(3==1){
            return 1;
        }
        return 3*fn(3-1);//此处fn(3-1)会再次调用fn(),此时传过去的参数为2
                         //返回值时会接收到fn(2)返回给fn(3-1)的值2*1,此处变为return 3*2*1;
    }
    //fn(3-1)调用的函数如下
    function fn(2){
        if(2==1){
            return 1;
        }
        return 2*fn(2-1);//此处fn(2-1)会再次调用fn(),此时传过去的参数为1
                        //返回值时会接收到fn(1)返回给fn(2-1)的值1,此处变为return 2*1;
    }
    //fn(2-1)调用的函数如下
    function fn(1){
        if(1==1){
            return 1;//此处把1返回给调用函数fn(2-1),即fn(2-1)=1
        }
        return n*fn(n-1);//因为上面1==1为真,所以执行return 1;以下代码不再执行
    } */
  
   
    
</script>
</head>
<body>
    
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值