汉罗塔递归c_递归实现汉诺塔问题

汉罗塔递归c_递归实现汉诺塔问题递归解决汉罗塔问题

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

思路

因为要将 A 柱上的圆盘全部转移到 C 柱上,所以先将最下面的最大的圆盘转移到 C 柱,将上面所有的圆盘看成一个整体,那么将这个整体转移到 B 柱上就可以将最大的圆盘转移到 C 柱了。然后,将现在 B 柱上最大的圆盘转移到 C 盘上需要借助 A 盘。重复上面的步骤,利用递归的思想。

代码

package Recursion;

public class _04_HanoiTower { 
   
    public static void main(String[] args) { 
   
        _05_Tower tower = new _05_Tower();
        tower.move(5,'A','B','C');
    }
}
package Recursion;

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182810.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Git 工具 – 高级合并「建议收藏」

    高级合并在Git中合并是相当容易的。因为Git使多次合并另一个分支变得很容易,这意味着你可以有一个始终保持最新的长期分支,经常解决小的冲突,比在一系列提交后解决一个巨大的冲突要好。然而,有时也会有棘手的冲突。不像其他的版本控制系统,Git并不会尝试过于聪明的合并冲突解决方案。Git的哲学是聪明地决定无歧义的合并方案,但是如果有冲突,它不会尝试智能地自动解决它。因此,如果很久之后才合并两个分叉的分支,你可能会撞上一些问题。在本节中,我们将会仔细查看那些问题是什么以及Git

    2022年4月6日
    73
  • java inputstream和outputstream_java runnable

    java inputstream和outputstream_java runnable首页>基础教程>IO流>InputStream类JavaInputStream类java.io.InputStream类是所有JavaIO输入流的基类,它是以字节为单位的输出流。定义publicabstractclassInputStreamextendsObjectimplementsCloseable此抽象类是表示字节输入流的所有类的超类。需…

    2022年9月21日
    3
  • Xshell连接不上虚拟机Linux系统

    Xshell连接不上虚拟机Linux系统以下是我在尝试网上各种办法之后总结的最优解决办法 1 先在主机上检查虚拟机相关的必要的服务是否都已经启动 2 检查虚拟机系统防火墙是否处于关闭状态 3 检查虚拟机系统的 ssh 服务是否已经启动 4 检查 ifcfg eth0 文件是否配置正确文件路径 etc sysconfig network scripts ifcfg eth0 本人虚拟机配置截图 网段查看 VmwareWo

    2025年8月26日
    0
  • 《提问的艺术》读后感「建议收藏」

    《提问的艺术》读后感「建议收藏」前言提问前他明明能帮到我却不帮我提问前必知必会的一些事关于搜索引擎提问时找准对象学会停顿组织你的问题清晰的发问低声下气代替不了做自己的家庭作业删除无意义的要求不要把问题标记为紧急即使对你而言的确如此礼貌总是有益的对待无礼提问禁区总结前言众所周知,你所提技术问题的解答很大程度上取决于你提问的方式与解决此问题的难度,但是怎么清楚的让有经验的人明白你表述的问题,让你获得最

    2022年6月23日
    22
  • 【LDC1314】金属传感器(电感传感器)的调试技巧

    【LDC1314】金属传感器(电感传感器)的调试技巧调试使用的LDC1314传感器板和感应线圈是笔者根据TI官方手册设计的本文允许转载,转载须得到本人授权,并在文章顶部注明本博文地址我所使用的LDC1314传感器板和感应线圈下面开始介绍调试的步骤这次调试的标准是按照2016年江苏省大学生电子设计竞赛的寻铁丝小车的题目要求为准的。要求能够检测出细铁丝接近和硬币靠近产生的数值变化,笔者没有参加比赛,但是听…

    2022年6月7日
    33
  • JAVA学习第四十七课 — IO流(一):文件的读写

    JAVA学习第四十七课 — IO流(一):文件的读写

    2022年2月2日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号