7. 递归

func fibonacci(n int) (res int) {
    if n <= 2 {
        res = 1
    } else {
        res = fibonacci(n-1) + fibonacci(n-2)
    }
    return
}

使用递归的条件

  1. 一个问题可以拆分为多个子问题
  2. 拆分后和原问题一致,只是规模小了而已。
  3. 需要有终止条件。