递归使用的例子(阶乘,m的n次方)

本文介绍了两个经典的递归算法实例:阶乘计算及幂运算。通过详细的JavaScript代码示例,展示了如何利用递归解决数学问题,并解释了递归的基本原理。

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

1、阶乘

<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// 阶乘
// n! = 1 * 2 * 3 *.... * (n - 1) * n
// 1! = 1
// 2! = 1! * 2
// 3! = 1 * 2 * 3
//  = 2! * 3
// 4! = 1 * 2 * 3 * 4
//  = 3! * 4
// 假设有个 求 n 的结成的函数 jc
// jc(3) = jc(3 - 1) * 3
// jc(4) = jc(4 - 1) * 4
// jc(n) = jc(n - 1) * n

                function jc(n) {

                       //临界条件
                       if(n === 1) {
                          return 1;
                       }

                        // 化归得到的递归条件
                       return jc(n - 1) * n;
                }

var num = jc(7);
console.log(num);
</script>
</body>

</html>

2、m的n次方

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// 求 m 的 n 次方
// 这个表示 m的n次方:m^n
// 2 ^ 0 = 1
// 2 ^ 1 = 2
// 2 ^ 2 = 2 * 2
// 2 ^ 3 = 2 * 2 * 2;
//          = 2 ^ 2 * 2
// 2 ^ 4 = 2 ^ 3 * 2 
// 
// ...
// 2 ^ n = 2 ^ (n - 1) * 2
// fn(2, n) = fn(2, n - 1) * 2;
// fn(m, n) = fn(m, n - 1) * m

// 假设有个函数 fn 就是来求 m的n次方
// fn(m, n);
           function fn(m, n) {
                  if(n === 0) {
                      return 1;
                  }
                 return fn(m, n- 1) * m;
           }
          var num = fn(2, 10); 
           console.log(num); 
</script>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值