汉诺塔-python递归

汉诺塔-Python代码实现(递归)

python 复制代码
def hannoi(n: int, x: str, y: str, z: str):
    """ 汉诺塔 """
    if n == 1:  # 一块圆盘,直接移动到Z
        print(x, ' -> ', z)
    else:
        # 不为一块圆盘,先将n-1个圆盘,从X通过Z,移动到Y
        hannoi(n - 1, x, z, y)
        print(x, ' -> ', z)     # X上只剩一块,然后移动到Z
        hannoi(n - 1, y, x, z)  # 再将n-1块圆盘,从Y通过X移动到Z


if __name__ == '__main__':
    hannoi(4, 'X', 'Y', 'Z')

# X  ->  Y
# X  ->  Z
# Y  ->  Z
# X  ->  Y
# Z  ->  X
# Z  ->  Y
# X  ->  Y
# X  ->  Z
# Y  ->  Z
# Y  ->  X
# Z  ->  X
# Y  ->  Z
# X  ->  Y
# X  ->  Z
# Y  ->  Z

小破站讲解视频:汉诺塔实现讲解

相关推荐
咖啡续命又一天11 分钟前
python 自动化采集 ChromeDriver 安装
开发语言·python·自动化
松果集1 小时前
【1】数据类型2
python
且慢.5891 小时前
命令行的学习使用技巧
python
海琴烟Sunshine2 小时前
leetcode 66.加一 python
python·算法·leetcode
罗橙7号2 小时前
【pyTorch】关于PyTorch的高级索引机制理解
人工智能·pytorch·python
B站计算机毕业设计之家2 小时前
智能监控项目:Python 多目标检测系统 目标检测 目标跟踪(YOLOv8+ByteTrack 监控/交通 源码+文档)✅
python·yolo·目标检测·目标跟踪·智慧交通·交通·多目标检测
江上月5132 小时前
django与vue3的对接流程详解(下)
后端·python·django
nightunderblackcat2 小时前
四大名著智能可视化推演平台
前端·网络·爬虫·python·状态模式
小蕾Java2 小时前
PyCharm入门级详细使用手册(Python新手快速上手篇)
ide·python·pycharm
动能小子ohhh2 小时前
AI智能体(Agent)大模型入门【9】--如何在pycharm等其他编译软件调用ocr工具【只写后端代码不演示】
人工智能·python·深度学习·机器学习·pycharm·ocr