递归

119 阅读1分钟

递归

什么是递归

函数体内部调用函数本身

递归三要素

①找规律,定义函数
②找出等价关系式(降一层拆解函数,调用自身)
③找出结束条件条件(否则无限循环)

递归小案例

//阶乘
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