java实现
// An highlighted block
package dac;
public class Hanoitower {
public static void main(String[] args) {
hanoiTower(2,'A','B','C');
}
//汉诺塔的移动方法
//使用分治算法
/**
*
* @param num 要移动的盘子的个数
* @param A 柱子A
* @param B 柱子B
* @param C 柱子C
*/
public static void hanoiTower(int num,char A,char B,char C){
//如果只有一个盘
if(num == 1){
System.out.println("第1个盘从"+ A +"===>"+C);
}else{
//如果有2个及以上的盘,则
// 1先将上面的所有盘借助C从A移动到B,A->B,
hanoiTower(num-1,A,C,B);
//2 再将最下面的盘直接移动到C,A->C
System.out.println("第"+num+"个盘从"+ A +"===>"+C);
//3 最后将B上的盘借助A从B移动到C,B->C
hanoiTower(num -1,B,A,C);
}
}
}
运行结果