首页 > 其他分享 >hanoiTower

hanoiTower

时间:2023-12-07 20:44:19浏览次数:32  
标签:Tower move char num hanoiTower 移动 public

汉诺塔(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

相关文章