网易首页 > 网易号 > 正文 申请入驻

C++汉诺塔递归算法!入门者的必攻题,递归的核心思想!

0
分享至

汉诺塔游戏中的柱子和圆盘汉诺塔 3 个圆盘的 7 步解决方案

汉诺塔是计算机学教科书中常用的游戏,用来说明递归的魔力。该游戏有3个柱子和一组不同大小的圆盘,柱子从圆盘的中心穿过。

游戏开始时,所有圆盘叠放在左侧第一个柱子上,如下图所示:

游戏的目标是将所有的圆盘从第一个柱子移动到第三个柱子,同时遵守以下规则:

① 除了被移动时,所有圆盘都必须放在柱子上。

② 一次只能移动一个圆盘。

③ 圆盘不能放置在比它小的圆盘上面。

现在来看一看游戏的一些玩法示例。最简单的情况是当只有一个圆盘时:在这种情况下,只要将圆盘从第一个柱子移动到第三个柱子就可以一次性完成游戏。

如果有两个圆盘,则需要通过 3 个步骤解决这个游戏:

① 将圆盘从第一个柱子移动到第二个柱子(它必须是最上面的一个)。

② 将圆盘从第一个柱子移动到第三个柱子。

③ 将圆盘从第二个柱子移动到第三个柱子。

请注意,虽然游戏的目的是将圆盘从第一个柱子移动到第三个柱子,但是有必要使用第二个柱子作为一些圆盘的临时安放位置。解决方案的复杂性随着要移动的圆盘数量的增加而迅速增加。

移动 3 个圆盘需要 7 步移动,如下图所示:


这个游戏有一个迷人的传说。根据这个传说,河内寺庙里有一群僧侣,他们有 3 个柱子和 64 个圆盘。这些圆盘最初堆放在第一个柱子上,而僧侣们则需要将它们移动到第三个柱子上。当僧侣们完成任务时,世界将会消亡。

现在回到这个问题本身,来考虑当圆盘的数量不做限制时,一般情况下的解决方案。

这个问题可以被描述为:将 n 个圆盘从第一个柱子移动到第三个柱子,使用第二个柱子作为临时柱子。

要理解如何使用循环解决这个问题是非常困难的,但令人高兴的是,设想一个递归解决方案并不困难:如果可以(递归地)将 n-1 个圆盘从第一个柱子移动到第二个柱子,而使用第三个柱子作为临时挂钩,那么最大的圆盘将独自放在第一个柱子上。

然后就可以一次性把最大圆盘从第一个柱子移动到第三个柱子。接下来,可以(递归地)将 n-1 个圆盘从第二个柱子移动到第三个柱子,这次使用第一个柱子作为临时柱子。

这个计划可以使用伪代码表示如下。其中,disk 表示圆盘,peg1-3 对应第一个柱子-第三个柱子。

现在来编写一个实现这个解决方案的函数,打印解决游戏的一系列动作。

以下代码将使用名称而不是数字来描述柱子。该函数的目标是使用临时柱子(peg3)将一叠圆盘从源柱子(peg1)移动到目标柱子(peg2)。

以下是函数的代码:

基本情况在 n = 0 时发生,并且没有要移动的圆盘。在这种情况下,函数调用将不做任何事情返回。

下面的程序演示了该函数:

序输出结果:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
我们为什么养出了一堆没有教养的“废物”?

我们为什么养出了一堆没有教养的“废物”?

教育人陈志文
2026-05-25 11:24:47
疯狂20-0!尼克斯半场领先骑士19分 米切尔20分纽约4人上双

疯狂20-0!尼克斯半场领先骑士19分 米切尔20分纽约4人上双

醉卧浮生
2026-05-26 09:17:14
15分钟灭国警告!俄罗斯摊牌:若敢碰加里宁格勒,就让立陶宛消失

15分钟灭国警告!俄罗斯摊牌:若敢碰加里宁格勒,就让立陶宛消失

观史搜寻着
2026-05-25 10:50:13
美军突然宣布:在伊朗南部实施自卫打击!伊朗位于霍尔木兹海峡附近沿海多地传出爆炸声!特朗普刚称美伊谈判“进展顺利”

美军突然宣布:在伊朗南部实施自卫打击!伊朗位于霍尔木兹海峡附近沿海多地传出爆炸声!特朗普刚称美伊谈判“进展顺利”

每日经济新闻
2026-05-26 07:26:11
毒性堪比砒霜!正大量上市,一旦发苦赶紧吐掉!医生:煮熟也有毒

毒性堪比砒霜!正大量上市,一旦发苦赶紧吐掉!医生:煮熟也有毒

中吴网
2026-05-25 22:42:39
美国新规:百万华人离境十年不得入境

美国新规:百万华人离境十年不得入境

深度解析热点
2026-05-25 22:43:01
邢台一别墅小区被举报有大量违建,物业和房产中介表示“可以违建”,官方回应

邢台一别墅小区被举报有大量违建,物业和房产中介表示“可以违建”,官方回应

大象新闻
2026-05-25 09:22:07
涉嫌严重违纪违法,潘静任上被查

涉嫌严重违纪违法,潘静任上被查

扬子晚报
2026-05-25 11:19:05
男子被卖妙瓦底后续!同学被刑拘,网友曝猛料,50万也难换回一命

男子被卖妙瓦底后续!同学被刑拘,网友曝猛料,50万也难换回一命

奇思妙想草叶君
2026-05-25 14:17:03
对不起,王鹤棣翻车事件看完我真的“不舒服”

对不起,王鹤棣翻车事件看完我真的“不舒服”

桌子的生活观
2026-05-25 12:16:53
最应被铭记的中国矿难事故:死亡数全球第一,震惊国内外

最应被铭记的中国矿难事故:死亡数全球第一,震惊国内外

网易新闻出品
2026-05-25 13:17:51
天王山要崩?雷霆马刺伤病更新,奥尼尔分析西决走向,确实太难了

天王山要崩?雷霆马刺伤病更新,奥尼尔分析西决走向,确实太难了

你的篮球频道
2026-05-26 08:07:26
蓝和黄不配,还是我们给自己找的借口

蓝和黄不配,还是我们给自己找的借口

风里藏温柔啊
2026-05-25 00:46:46
0-11!不打了!官宣缺席生死战

0-11!不打了!官宣缺席生死战

篮球教学论坛
2026-05-26 08:40:07
刚上太空仅一夜,就炸出一堆牛鬼蛇神,香港母亲黎家盈刺痛了谁?

刚上太空仅一夜,就炸出一堆牛鬼蛇神,香港母亲黎家盈刺痛了谁?

何氽简史
2026-05-25 19:01:58
刚上太空仅一夜,就冒出一堆牛鬼蛇神,香港母亲黎家盈刺痛了谁?

刚上太空仅一夜,就冒出一堆牛鬼蛇神,香港母亲黎家盈刺痛了谁?

小怪吃美食
2026-05-26 02:29:51
“割四赔五”!又一新词诞生,河南农机夫妻哭诉襄阳割麦遭遇不公

“割四赔五”!又一新词诞生,河南农机夫妻哭诉襄阳割麦遭遇不公

火山詩话
2026-05-26 06:36:12
窦靖童:母亲钱多到用不完,但穷苦潦倒的爸爸,是我现在最大心病

窦靖童:母亲钱多到用不完,但穷苦潦倒的爸爸,是我现在最大心病

铁锤妹妹是只猫
2026-05-26 03:29:13
徐根宝暴瘦赴京祝寿,恩师年维泗掏出神秘存折,身旁武磊瞬间眼圈泛红

徐根宝暴瘦赴京祝寿,恩师年维泗掏出神秘存折,身旁武磊瞬间眼圈泛红

东方不败然多多
2026-05-26 00:29:17
燃油车齐降价,捷豹路虎打对折,网友:感觉燃油车又香了

燃油车齐降价,捷豹路虎打对折,网友:感觉燃油车又香了

大象新闻
2026-05-25 22:13:17
2026-05-26 09:32:50
爱创乐育
爱创乐育
努力成为别人心中的大神
30文章数 134关注度
往期回顾 全部

科技要闻

今年秋季,麒麟芯片将首次落地"逻辑折叠"

头条要闻

燃油车齐降价捷豹路虎打对折 网友:感觉燃油车又香了

头条要闻

燃油车齐降价捷豹路虎打对折 网友:感觉燃油车又香了

体育要闻

如果不好好守门,他可能早就继承家业了

娱乐要闻

李晨郑恺跑男停宣:12年元老被边缘化

财经要闻

走近何庭波

汽车要闻

启境GT7定档5月29日预售 提供三电机版本

态度原创

艺术
健康
亲子
旅游
军事航空

艺术要闻

张大千最克制的十年温柔

几百块一瓶的外泌体精华,涂脸上是“智商税”吗?

亲子要闻

央视新闻探访君乐宝奶粉产业链

旅游要闻

黑龙江省双鸭山市宝清县:修复矿山旧迹 打造文旅新篇

军事要闻

俄军出动“榛树”导弹袭击乌克兰

无障碍浏览 进入关怀版