news 2026/4/15 9:08:00

东方博宜OJ 1222:经典递归问题 —— 汉诺塔

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
东方博宜OJ 1222:经典递归问题 —— 汉诺塔

【题目来源】
https://oj.czos.cn/p/1222

【题目描述】
汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着 64 个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。
面对庞大的数字(移动圆片的次数)
18446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。

后来,这个传说就演变为汉诺塔游戏:
1.有三根杆子 A,B,C。A 杆上有若干碟子。
2.每次移动一块碟子,小的只能叠在大的上面。
3.把所有碟子从 A 杆全部移到 C 杆上。
经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片:如 3 阶汉诺塔的移动:A→C, A→B, C→B, A→C, B→A, B→C, A→C。
此外,汉诺塔问题也是程序设计中的经典递归问题。
算法思路:
1.如果只有一个金片,则把该金片从源移动到目标棒,结束。
2.如果有 n 个金片,则把前 n-1 个金片移动到辅助的棒,然后把自己移动到目标棒,最后再把前 n-1 个移动到目标棒。

【输入格式】
一个整数 N,表示 A 柱上有 N 个碟子。(0<n≤10)

【输出格式】
若干行,即移动的最少步骤。

【输入样例】
3

【输出样例】
A To C
A To B
C To B
A To C
B To A
B To C
A To C

【数据范围】
0<n≤10​​​​​​​

【算法分析】
经典递归问题。

【算法代码】

#include <bits/stdc++.h> using namespace std; void hnt(int n,char x,char y,char z) { if(n==0) return; hnt(n-1,x,z,y); cout<<x<<" To "<<z<<endl; hnt(n-1,y,x,z); } int main() { int n; cin>>n; hnt(n,'A','B','C'); return 0; } /* in: 3 out: A To C A To B C To B A To C B To A B To C A To C */





【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/115372258
https://oj.czos.cn/p/1222




版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 21:52:03

百度网盘免费解析工具终极指南:彻底告别限速烦恼

百度网盘免费解析工具终极指南&#xff1a;彻底告别限速烦恼 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘那令人抓狂的几十KB下载速度而苦恼吗&#xff1f;重…

作者头像 李华
网站建设 2026/4/15 6:01:23

JumpCloud 远程助手漏洞可导致系统遭接管

聚焦源代码安全&#xff0c;网罗国内外最新资讯&#xff01;编译&#xff1a;代码卫士JumpCloud Windows版远程助手存在漏洞CVE-2025-34352&#xff08;CVSS评分8.5&#xff09;&#xff0c;攻击者可借此提权并可能控制终端。该漏洞的成因在于&#xff0c;应用程序在执行卸载和…

作者头像 李华
网站建设 2026/4/14 0:29:56

显卡驱动彻底清理终极指南:DDU工具深度解析与应用技巧

显卡驱动彻底清理终极指南&#xff1a;DDU工具深度解析与应用技巧 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller …

作者头像 李华
网站建设 2026/4/15 4:44:26

OBS多平台直播终极指南:从入门到精通的完整方案

作为一名从单平台到多平台直播转型的内容创作者&#xff0c;我在使用obs-multi-rtmp插件的过程中积累了丰富的实战经验。今天与大家分享这套经过验证的完整方案&#xff0c;帮助你在多平台直播的道路上少走弯路。 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイ…

作者头像 李华
网站建设 2026/4/14 0:28:36

基于DeploySharp 的深度学习模型部署测试平台:支持YOLO全系列模型

1. 程序获取和下载基于DeploySharp 开发的深度学习模型部署测试平台&#xff0c;提供了YOLO框架的主流系列模型&#xff0c;包括YOLOv5~v13&#xff0c;以及其系列下的Detection、Segmentation、Oriented Bounding Box、Human Pose Estimation等应用场景。模型部署引擎支持Open…

作者头像 李华
网站建设 2026/4/13 15:30:00

思考与练习之答案与解析(第六章 程序控制结构)

一、单项选择题答案及解析1、④三种基本控制结构各有其用途&#xff0c;不能完全互相替代。顺序结构用于线性执行&#xff0c;选择结构用于条件分支&#xff0c;循环结构用于重复执行。虽然理论上可以用顺序和选择模拟循环&#xff08;或反之&#xff09;&#xff0c;但这会使代…

作者头像 李华