package Algorithm.dac;
public class Hannoitower {
public static void main(String []args){
hannoiTower(5,'A', 'B', 'C');
}
//汉诺塔移动方法
//使用分治算法
public static void hannoiTower(int num, char a, char b, char c){
//如果只有一个盘
if (num == 1){
System.out.println("第1个盘:" + a + "->" + c);
}else {
//如果n>=2,总是看做两个盘,最下面的一个盘和上面的所有盘
//1.把上面的所有盘 A=>B,移动过程会使用到c
hannoiTower(num -1, a, c, b);
//2.把最下面的盘 A-C
System.out.println("第"+num+"个盘:" + a + "->" + c);
//3.把b塔的所有盘移动到c,移动过程使用到a塔
hannoiTower(num-1, b, a, c);
}
}
}