汉诺塔
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 } } }