递归函数(慎用)
解释
1.在一个函数内, 自己调用自己
2.逐层递进的过程, 逐层回归的过程
递归函数书写:
1. 先写折返点
2.按照规则书写递进过程, 不要忘记return
console.log('start')
function fn(n) {
// 折返点
if (n === 1) return 1
// 递进过程
return n * fn(n - 1)
}
fn(4)
练习
递归书写辗转相除最大公约数
function fn(max, min) {
// 折返点
if (max % min === 0) return min
// 递进过程
return fn(min, max % min)
}
// 我想求 18 和 12 的最大公约数
var res = fn(27, 19)
console.log(res)