当前位置:首页 » 《随便一记》 » 正文

java实现汉诺塔游戏(递归)(附超详细易懂注释)_m0_53653818的博客

7 人参与  2022年04月27日 10:49  分类 : 《随便一记》  评论

点击全文阅读


  1. 我们很容易能想到,可以用递归来实现汉诺塔游戏。因为要将n(n>1)个盘子从“源”柱子移到“目标”柱子,我们要先把n-1个盘子从“源”柱子移到“辅助”柱子上,然后把最底下那一个盘子移到目标柱子上,最后把“辅助柱”上的n-1个盘子移动到目标柱子上。n==1时直接移到目标柱上,也是递归的出口。
  2. 有了以上思路的铺垫,就可以开始实现代码了。
  3. public class HanoiDemo {
        public static int hanoiCalledCount = 0;//成员变量记录操作次数
    
        //汉诺塔游戏是一种二路递归
        public static void main(String[] args) {
            hanoi(3,"A","B","C");
            System.out.println("执行"+hanoiCalledCount+"步");
        }
    
        public static void hanoi(int n,String source,String target,String assist){
            if(n<=0){
                System.out.println("n要大于零");
            }
            if(n==1){//递归的出口,n==1时直接移到目标柱上
                System.out.printf("把一个盘子从%s柱子上移动到%s柱子上\n",source,target);
                hanoiCalledCount++;//计数器加一
            }else{
                //先把n-1个盘子从“源”柱子移到“辅助”柱子上
                hanoi(n-1,source,assist,target);
                //把最底下那一个盘子移到目标柱子上
                System.out.printf("把一个盘子从%s柱子上移动到%s柱子上\n",source,target);
                hanoiCalledCount++;//计数器加一
                //把“辅助柱”上的n-1个盘子移动到目标柱子上
                hanoi(n-1,assist,target,source);
            }
        }
    }

    运行结果如下,大家可以尝试验证一下是否正确。

  4. 当n==2时,要操作3次

        当n==3时,要操作7次

        当n==4时,要操作15次

        相信大家已经猜出规律了,操作次数==n^2-1

        可见,随着盘子个数n的增加,操作次数以n^2增加,所以,自己玩汉诺塔游戏的是时候建议数字不要超过20。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/39042.html

柱子  盘子  递归  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 「鸢影云烟不可追」节选角色羁绊特辑‌_[徐启玄清宁南鸢]小说精彩章节分享
  • (番外)+(全书)途径一场风月结局+番外***_(商予淮宋泠音)途径一场风月结局+番外列表_笔趣阁(商予淮宋泠音)
  • (番外)+(全书)夏夏孟东程晓晓宋易(哥哥为陪红颜,害嫂子和我丧命结局+番外)全书在线_夏夏孟东程晓晓宋易免费列表_笔趣阁(哥哥为陪红颜,害嫂子和我丧命结局+番外)
  • 「重生流放,搬空仇家扶持小叔称帝」章节世界观揭秘篇‌_苏暖凌云最新后续章节在线阅读
  • 途径一场风月全书+后续+结局(宋泠音商予淮)列表_途径一场风月(宋泠音商予淮)途径一场风月全书+后续+结局在线
  • 你的谎言是座坟墓结局+番外精选作品之一(楚湘怀谢言宸)列表_你的谎言是座坟墓结局+番外精选作品之一
  • 阮望舒段允淮全书+后续+结局(段允淮阮望舒)_阮望舒段允淮全书+后续+结局(段允淮阮望舒)
  • 被白眼狼养女谋财害命后我杀疯了+后续+结局(张静周明苏梦)_(张静周明苏梦)被白眼狼养女谋财害命后我杀疯了+后续+结局列表_笔趣阁(张静周明苏梦)
  • 「闪闪发光的笨蛋」小说精彩章节免费试读_陆景方思喻谢谢后续在线阅读
  • 心伤怎续旧时情全书+后续(林悦溪叶星屿)_(林悦溪叶星屿)心伤怎续旧时情全书+后续后续免费(林悦溪叶星屿)
  • 错散对逢情难却(欧阳靖商迟叙)
  • 君若无心事事休全书+后续(叶柠柠傅司淮)列表_君若无心事事休全书+后续(叶柠柠傅司淮)君若无心事事休全书+后续在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1