求n的阶乘
已知1的阶乘为1。
步骤分析:递归 - 找规律、找出口,出口找到,依次往前推即可。
// 求阶乘的函数
function mul(n) {
  if(n === 1) {
     return 1
  }
  return n * mul(n-1)
}
var res = mul(10)
console.log(res) // 3628800/*
    * mul(10) ---> 10 * mul(9)
    * mul(9) ----> 9 * mul(8)
    * mul(8) ---> 8 * mul(7)
    * mul(7) ---> 7 * mul(6)
    * mul(6) ---> 6 * mul(5)
    * mul(5) ---> 5 * mul(4)
    * mul(4) ---> 4 * mul(3)
    * mul(3) ---> 3 * mul(2)
    * mul(2) ---> 2 * mul(1)
    * 当n为1时,返回1,所以mul(2)的阶乘为 2 * 1 = 2
    * 所以,mul(3)的阶乘为 3 * 2 = 6
    * mul(4)的阶乘为 4 * 6 = 24
    * mul(5)的阶乘为 5 * 24 = 120
    * mul(6)的阶乘为 6 * 120 = 720
    * mul(7)的阶乘为 7 * 720 = 5040
    * mul(8)的阶乘为 8 * 5040 = 40320
    * mul(9)的阶乘为 9 * 40320 = 362880
    * mul(10)的阶乘为 10 * 362880 = 3628800
    * */费波那切数列
已知第一位和第二位都是1。
分析:第n位是 (n-1)和(n-2)之和,出口:n为1和2时,都返回1
function FB(n) {
  if(n === 1 || n === 2) {
    return 1
  }
    return FB(n -1) + FB(n - 2)
}
var res = FB(5)
console.log(res) // 5/**
* FB(5) -----> FB(4) + FB(3)
* FB(4) -----> FB(3) + FB(2)
* FB(3) ----> FB(2) + FB(1)
* 当n为1和2时,都返回1
* 所以,
* FB(3) = 1 + 1
* FB(4) = 2 + 1 
* FB(5) = 3 + 2 
* 最后结果为:5 
* /
                










