递归 汉诺塔-java

汉诺塔传说:
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一个柱子从下往上按照大小顺序摞着64片圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上,并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

//2024.07.10public 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塔//为把a的盘移动到c盘,借助bpublic void move(int num, char a, char b, char c){//如果只有一个盘 num == 1if (num == 1) {System.out.println(a + "->" + c);}else{//如果有多个盘,可以看成两部分,最下面的和上面的所有盘(num-1个)//(1)先移动上面的所有盘到b,借助cmove(num - 1, a, c, b);//(2)把最下面的盘,移动到cSystem.out.println(a + "->" + c);//(3)把b的所有盘,移动到c,借助amove(num - 1, b, a, c);}}
}

运行结果截图:
有5个盘的汉诺塔HanoiTower移动轨迹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

跨境电商自养号测评干货分享:从环境搭建到安全养号

跨境电商测评(补单) 测评补单这个词对于大部分跨境卖家来说都很熟悉,因为补单对于卖家来说算是一种低成本,高回报的推广营销方式,对于商品流量,转化率,关键词质量分,链接权重都起到…

ACL 2024 Accepted Paper 浅浅分析

7月7日,晴。 ACL 2024的接受论文列表终于姗姗来迟,全网没有搜到相关解析,那我只能先吃个螃蟹了。 借助ChatGPT的辅助编程,我对于其论文和作者进行了一些浅浅的分析,主要从词云、主题类型、作者发表数量3个方面对于主…

Node.js如何在Windows安装?

文章目录 主要特点:使用场景:安装方法验证是否安装成功 Node.js 是一个开源、跨平台的JavaScript运行环境,由Ryan Dahl于2009年创建。它允许开发者在服务器端运行JavaScript代码。Node.js 基于Chrome V8 JavaScript引擎构建,其设计…

CTF php RCE(三)

0x07 日志文件包含 判断类型 使用kali curl -I urlF12 打开F12开发者工具,选中之后F5刷新查看server类型即可 配置文件 直接包含或者访问如果有回显就是, NGINX:NGINX 的配置文件通常位于 /etc/nginx/ 目录下,具体的网站配…

【Lua】lua实现C# continue效果

1. repeat…until和break for i 1, 5 dorepeatif i 3 thenbreakendprint(i)until true end--[[1245 ]]2. 使用goto for i 1, 5 doif i 3 thengoto continueendprint(i, " no continue")::continue:: end--[[1 no continue3 no continue4 no continue5 no c…

2024.7.10作业

完成学生管理系统 1> 使用菜单完成 2> 有学生的信息录入功能:输入学生个数,并将学生的姓名、分数录入 3> 查看学生信息:输出所有学生姓名以及对应的分数 4> 求出学习最好的学生信息:求最大值 5> 按姓名将所有…

北斗GPS天线使用技巧与性能对比

北斗GPS天线使用中注意的问题 多系统兼容性:确保天线不仅能接收北斗信号,还能同时接收其他GNSS系统(如GPS、GLONASS、Galileo)的信号,以提高定位精度和可靠性。 信号频率选择:根据应用需求选择合适的信号…

各数据库查询模式名、表名、表注释、表大小

一、Oracle SELECT * FROM (SELECT t.*, ROWNUM rn FROM (SELECT a.owner AS schema_name, a.table_name, b.comments as table_comment, COALESCE(a.blocks, 0) * 8 / 1024 AS size_kb FROM dba_tables a left join dba_tab_comments b on a.table_name b.table_name and a.…

[Python学习篇] Python异常

什么是异常? 异常(Exception)是指在程序执行过程中发生的错误事件,它会中断程序的正常执行流程。异常可以由程序中的错误引发,也可以通过主动抛出异常来处理特殊情况。Python 使用异常处理机制来捕获和处理这些错误&am…

《警世贤文》摘抄:处人篇、受恩篇、宽人篇、听劝篇、劝善篇(多读书、多看报、少吃零食多睡觉)

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140343740 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

新手教学系列——MongoDB聚合查询的进阶用法

引言 MongoDB的聚合查询是其最强大的功能之一。无论是汇总、平均值、计数等标准操作,还是处理复杂的数据集合,MongoDB的聚合框架都能提供高效且灵活的解决方案。本文将通过几个实例,详细讲解如何在实际项目中使用MongoDB进行聚合查询。 标准应用:汇总、平均值、计数等 在…

【C语言】字符函数和字符串函数的介绍和模拟实现

介绍处理字符和字符串的库函数的使用和注意事项 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 0. 前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的&am…

从0开始的STM32HAL库学习2

外部中断(HAL库GPIO讲解) 今天我们会详细地学习STM32CubeMX配置外部中断,并且讲解HAL库的GPIO的各种函数。 准备工作: 1、STM32开发板(我的是STM32F103C8T6) 2、STM32CubeMx软件、 IDE: Keil软件 3、STM32F1xx/ST…

Jenkins设置开机自启(以war包方式启动jenkins)

配置环境:Centos7.6/Jenkins 2.452.2/jdk-21.0.3 jenkins启动命令: nohup java -jar jenkins.war > /dev/null 2>&1 & 1、创建sh脚本文件 # jenkins.war包,放在了/root/software目录 cd /root/software vim jenkins-start.sh …

Qt QWebSocket网络编程

学习目标:Qt QWebSocket网络编程 学习前置环境 QT TCP多线程网络通信-CSDN博客 学习内容 WebSocket是一种通过单个TCP连接提供全双工通信信道的网络技术。2011年,IETF将WebSocket协议标准化为 RFC6455,QWebSocket可用于客户端应用程序和服…

灵岫科技技术二面\.(过了)

1 自我介绍 2 项目拷打 -高效率如何保证? 时间空间(内存碎片浪费) -适用于什么场景? -和malloc/free相比好在哪? -是否一定比free/malloc快? 也许不一定,毕竟没有tcmalloc考虑的全面 3 …

怎么把便签主面板置顶 便签主面板置顶方法

作为一名经常需要处理大量信息和任务的作家,我发现便签记事真的是我的救星。无论是临时灵感、会议要点还是待办事项,便签都能帮我快速记录,让我不再遗漏任何重要信息。而且,便签的应用场景也非常广泛,无论是在电脑前写…

在JavaScript中,什么是解构赋值(destructuring assignment)?

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介在JavaScript中,什么是解构赋值(destructuring assignment)?1. 引言2. 解构赋值的概念3. 数组解构赋值3.1 基本语法3.2 跳过元素3.3 默认值3.4 交换变量值 4. 对象解构赋值4.1 基本语…

goaccess分析json格式日志

一.安装使用yum安装,yum install goaccess 二.主要介绍格式问题 1.nginx日志格式如下: log_format main escapejson {"time_local":"$time_local", "remote_addr":"$remote_addr", "r…

回收站清空了怎么恢复回来?8个数据恢复方法汇总分享!

在日常工作中,我们常常会遇到一个令人头痛的问题:回收站清空了怎么恢复回来?这种情况其实比想象中更常见。有时在整理桌面时可能会不小心彻底清理文件,或者误开启了回收站的自动清理功能,甚至可能因为病毒或bug而意外丢…