鱼C论坛

 找回密码
 立即注册
查看: 3377|回复: 4

[已解决]关于汉诺塔的问题

[复制链接]
发表于 2022-8-3 17:34:15 | 显示全部楼层
如果把这个递归函数的形参名称改的清晰一些可能就更容易理解了。实际上应该是
  1. def haoni(n,source,relay,destination):
  2.     pass    # 内容省略
复制代码

haoni 函数输出把 n 个(盘?)从 source 通过 relay 中转(如果需要)移动到 destination 的过程。对于只有一个盘的情况,直接从 source 移动到 destination 即可;对于不止一个的情况,我们可以首先将 n - 1 个盘从 source 移动到 relay (这里可以使用 destination 作为中转),然后把一个盘(剩下的,第 n 个盘)从 source 直接移动到 destination ,最后把先前临时移动到 relay 的所有盘(共 n - 1 个)移动到 destination (现在可以通过 source 中转)即完成全部 n 盘个以 relay 为中转从 source 移动到 destination 的工作。注意到上述过程中包含的两次移动 n - 1 个盘的操作同样满足 haoni 函数的定义,因此可以使用之。这一过程也就是代码第 5 到 7 行所做的事情。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-19 03:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表