你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

汉诺塔

2022/9/1 20:53:35

 

 1.思路

1)

//如果有多个盘,可以看成两个,最下面一个和其它所有盘(num-1)

2)
先移动上面的盘到B盘,借助C盘;
把最下面的盘,移动到C盘
把剩下的移动到C盘


2.代码

public class HanoiTower {
public static void main(String[] args) {

Tower tower = new Tower();
tower.move(5,'A','B','C');
}
}

class Tower{
//num表示要移动的盘的个数,a,b,c分别表示表示A塔,B塔,C塔
public void move(int num,char a,char b,char c){
if (num == 1){
System.out.println(a + "->" + c);
}else {
//如果有多个盘,可以看成两个,最下面一个和其它所有盘(num-1)
//1.先移动上面的盘到B盘,借助C盘
move(num-1,a,c,b);
//2.把最下面的盘,移动到C盘
System.out.println(a + "->" + c);
//3.把剩下的移动到C盘
move(num-1,b,a,c);
}
}
}