news 2026/5/6 9:15:04

东方博宜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/5/1 10:04:51

MOS 管栅极的 “充放电控制 + 可靠性

要分析这个UCC27244D 驱动 MOS 管 Q1电路中 R1、R3、D1、R2 的作用,需要结合 “栅极驱动的充放电、振荡抑制、可靠性” 这几个核心需求来看: 1. R1(100Ω):栅极串联电阻(核心作用是抑制振荡 + 限流) R1 串联在驱动器OUTA与 MOS 管 Q1 的栅极(G)之间,是栅极电阻,作…

作者头像 李华
网站建设 2026/5/1 1:26:06

ViGEmBus虚拟手柄驱动:从内核到应用的完整技术解析

ViGEmBus虚拟手柄驱动&#xff1a;从内核到应用的完整技术解析 【免费下载链接】ViGEmBus 项目地址: https://gitcode.com/gh_mirrors/vig/ViGEmBus 在游戏外设兼容性领域&#xff0c;一个看似简单的问题困扰着无数玩家和开发者&#xff1a;如何让非标准手柄在Windows系…

作者头像 李华
网站建设 2026/5/1 2:54:48

论文分享|重新思考循环神经网络与图像分类的改进(Rethinking Recurrent Neural Networks and Other Improvements for Image Class)

一、 引言&#xff1a;打破常规的研究视角 在深度学习领域&#xff0c;模型架构的创新往往遵循着清晰的“分工”。卷积神经网络凭借其强大的空间特征提取能力&#xff0c;自AlexNet以来一直是图像识别任务的绝对主力。而循环神经网络&#xff0c;则因其独特的序列建模能力&…

作者头像 李华
网站建设 2026/5/1 15:58:03

RL | 速读 IJCAI 2025 的强化学习论文

59 Multi-granularity Knowledge Transfer for Continual Reinforcement Learning - 为持续 RL 而设计的多粒度知识迁移Continual reinforcement learning (CRL) empowers RL agents with the ability to learn a sequence of tasks, accumulating knowledge learned in the pa…

作者头像 李华
网站建设 2026/5/1 1:47:50

Wiseflow开源许可证完整指南:合规使用与企业部署实战手册

Wiseflow开源许可证完整指南&#xff1a;合规使用与企业部署实战手册 【免费下载链接】wiseflow Wiseflow is an agile information mining tool that extracts concise messages from various sources such as websites, WeChat official accounts, social platforms, etc. It…

作者头像 李华
网站建设 2026/5/1 9:42:19

科大讯飞语音引擎:让Android设备开口说话

科大讯飞语音引擎&#xff1a;让Android设备开口说话 【免费下载链接】科大讯飞语音引擎TTS.apk下载 本仓库提供科大讯飞语音引擎TTS.apk的下载&#xff0c;支持32位和64位版本&#xff0c;适用于最新的Android系统。该语音引擎为Android平台提供中文发音的TTS&#xff08;文本…

作者头像 李华