递归
什么是递归
函数体内部调用函数本身
递归三要素
①找规律,定义函数
②找出等价关系式(降一层拆解函数,调用自身)
③找出结束条件条件(否则无限循环)
递归小案例
//阶乘
1!=1*1
2!=1*2
3!=1*2*3
4*=1*2*3*4
function fn(n) { //定义函数
if (n <= 2) return n //结束条件
return fn(n - 1) * n //等价关系式
}
console.log(fn(4)) //24
//斐波那契数列
1 1 2 3 5 8 13 21 (从第三位开始,当前数字为前两个数字之和)
function fn(n) { //定义函数
if (n <= 2) return n //结束条件
return fn(n - 1) + fn(n - 2) //等价关系式
}
console.log(fn(4)); //5