每个递归函数都有两部分:

  1. 基线条件:函数不再调用自己的条件,从而避免形成无限循环
  2. 递归条件:函数调用自己的条件