递归关注的只有两个过程:

    • 调用自身
    • 结束条件

    汉诺塔问题:
    image.png

    1. 将 A 柱上的第 n-1 个盘子从 A 经过C移动到 B
    2. 将 A 柱上的第 n 个盘子移动到 C
    3. 将 B 柱上的第 n-1 个盘子从 B 经过 A 移动到 C

      1. public class Demo {
      2. public static void main(String[] args) {
      3. hanoi(3, 'A', 'B', 'C');
      4. }
      5. private static int count;
      6. // 表示将 a 经过 b 移动到 c
      7. public static void hanoi(int n, char a, char b, char c) {
      8. if (n > 0) {
      9. hanoi(n - 1, a, c, b);
      10. System.out.println("第" + ++count + "次:将" + a + "移动到" + c);
      11. hanoi(n - 1, b, a, c);
      12. }
      13. }
      14. }