古代有一个梵塔,塔内有 A、B、C 三个基座,A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上。有人想把这 64 个盘子
从 A 座移到 C 座,但每次只允许移动一个盘子,并且在移动的过程中,3 个基座上的盘子始终保持大盘在下,小盘在上。在移动过程中
盘子可以放在任何一个基座上,不允许放在别处。编写程序,用户输入盘子的个数,显示移动的过程。
def Hanoi(n, ch1, ch2, ch3):
if n == 1:
print(ch1, '->', ch3)
else:
Hanoi(n - 1, ch1, ch3, ch2)
print(ch1, '->', ch3)
Hanoi(n - 1, ch2, ch1, ch3)
N = int(input("请输入盘子的数量:"))
Hanoi(N, 'A', 'B', 'C')
本文介绍了一个经典的递归问题——汉诺塔。通过一个具体的实例,详细阐述了如何将64个盘子从A基座移动到C基座的全过程,同时保持大盘在下、小盘在上的规则。文章提供了Python代码实现,用户输入盘子数量即可展示移动步骤。

2222

被折叠的 条评论
为什么被折叠?



