汉诺塔问题
public class HanoiTower {
//编写一个main方法
public static void main(String[] args) {
Tower t1 = new Tower();
t1.move(5, 'A', 'B', 'C');
}
}
//汉诺塔问题的解决,A,B,C三个区域,每次只能移动一层
class Tower {
//num代表移动个数,A,B,C,代表三个塔
public void move(int num ,char A,char B,char C) {
//只有一个盘 num = 1
if (num == 1) {
System.out.println(A + "->" + C);
} else {
//将多个盘看成两个,最下面和上面所有(num-1)
//1.先移动上面所有盘到B,借助C
move(num - 1, A , C, B);
//2.把最下面的盘移动到C
System.out.println(A + "->" + C);
//3.在把B塔的所有盘 移动到C,借助A
move( num - 1,B, A, C);
}
}
}