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;
}
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>