Java 老鼠走迷宫 汉诺塔

Posted ascertain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 老鼠走迷宫 汉诺塔相关的知识,希望对你有一定的参考价值。

 

汉诺塔

public class Tower {
  public static void main(String[] args) {
    Hanoi hanoi = new Hanoi();
    hanoi.move(5, \'A\', \'B\', \'C\');
  }
}

class Hanoi {
  // num: 盘数,a:A塔,b:B塔,c:C塔
  public void move(int num, char a, char b, char c) {
    if (num == 1) { // 只剩一个盘,出口
      System.out.println(a + " => " + c);
    } else {
      // 将多个盘看为2个, 最下的一个, 和上面的所有(num-1)
      move(num - 1, a, c, b); // 借助c, 将上面的num-1移动到 b
      System.out.println(a + " => " + c); // 最下面的移到c
      move(num - 1, b, a, c); // 借助a, 把b塔的num-1个移到c
    }
  }
}

  

 

以上是关于Java 老鼠走迷宫 汉诺塔的主要内容,如果未能解决你的问题,请参考以下文章

跟耿老师学Java:贪心算法与老鼠走迷宫

Java与算法之 - 老鼠走迷宫(深度优先算法)

算法:老鼠走迷宫问题

贪心算法与老鼠走迷宫

老鼠走迷宫一

老鼠走迷宫