hanoiTower

汉诺塔(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);
        }
    }
}
posted @   MGLblog  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示