一、分治算法介绍
二、分治算法应用
三、代码实现
public class Hanoitower {
public static void main(String[] args) {
hanoiTower(3,'A','B','C');
}
//分治算法解决汉诺塔问题
public static void hanoiTower(int num,char a,char b,char c){
if(num == 1){
System.out.println("第1个盘从" + a + "->" + c);
}else{
//把上面的盘借助C移动到B,然后把最后一块盘移到C,紧接着递归
hanoiTower(num-1,a,c,b);
System.out.println("第" + num + "个盘从"+ a + "->" + c);
hanoiTower(num-1,b,a,c);
}
}
}
四、测试结果
第1个盘从A->C
第2个盘从A->B
第1个盘从C->B
第3个盘从A->C
第1个盘从B->A
第2个盘从B->C
第1个盘从A->C