Python 官方文档:入门教程 => 点击学习
#!/usr/bin/env python# 24 - 递归 汉诺塔# Q1:"""汉诺塔原型三个柱子,64块金片思路:1. 将x上的63个盘子借助Z移动到Y上2. 将Y上的63个盘子借助X移动到Z上问题1: 将x上的63个盘子借助Z移动到
#!/usr/bin/env python
# 24 - 递归 汉诺塔
# Q1:
"""
汉诺塔原型
三个柱子,64块金片
思路:
1. 将x上的63个盘子借助Z移动到Y上
2. 将Y上的63个盘子借助X移动到Z上
问题1: 将x上的63个盘子借助Z移动到Y上。拆解为:
1. 将62个盘子从x移动到Z上
2. 将最底下的第63个盘子移动到y上
3. 将z上的62个盘子移动到Y上
问题2: 将Y上的63个盘子借助X移动到Z上,拆解为:
1. 将62个盘子从y移动到x上
2. 将最底下的第63个盘子移动到z上
3. 将z上的62个盘子移动到Y上
"""
def hanoi(n,x,y,z):
if n == 1:
print(x,'--->',z)
else:
hanoi(n-1,x,z,y)# 将前n-1个盘子从x移动到y上
print(x,'--->',z)#将最底下的最后一个盘子从x移动到x上
hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
n = int(input('请输入汉诺塔的层数: '))
hanoi(n,'x','y','z')
--结束END--
本文标题: python - 汉诺塔
本文链接: https://lsjlt.com/news/185012.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0