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,移动过程会使用到channoiTower(num -1, a, c, b);//2.把最下面的盘 A-CSystem.out.println("第"+num+"个盘:" + a + "->" + c);//3.把b塔的所有盘移动到c,移动过程使用到a塔hannoiTower(num-1, b, a, c);}}
}