汉诺塔(hanoiTower)
思路分析:
1.假定只有一个盘,直接移动到c柱
2.若有多个盘,把它看作只有两个盘,最下面的和上面所有盘(num - 1)
3.把a柱上的上面所有盘(num-1),移动到b柱,借助c柱
4.把最下面的盘直接移动到c柱
5.把b柱所有盘移动到c柱,借助a柱
/**
* 汉诺塔的实现
*/
public class HanoiTower {
public static void main(String[] args){
Tower tower = new Tower();
tower.move(3,'A','B','C');
}
}
class Tower{
/*
思路分析:
1.假定只有一个盘,直接移动到c柱
2.若有多个盘,把它看作只有两个盘,最下面的和上面所有盘(num - 1)
3.把a柱上的上面所有盘(num-1),移动到b柱,借助c柱
4.把最下面的盘直接移动到c柱
5.把b柱所有盘移动到c柱,借助a柱
*/
public void move(int num, char a, char b, char c){
if (num == 1){
System.out.println(a + "->" + c);
}else {
move(num - 1, a,c,b);
System.out.println(a + "->" + c);
move(num-1,b,a,c);
}
}
}
标签:Tower,move,char,num,hanoiTower,移动,public
From: https://www.cnblogs.com/mglblog/p/17883901.html