汉诺塔-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

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

相关推荐
奈葵20 分钟前
Python
开发语言·python
happylifetree28 分钟前
Python54-55:核心语法-数据容器-字典dict-案例
python
小小张说故事29 分钟前
Python 迭代器和生成器到底啥区别?3 个例子讲透,别再背概念了
python
外收内放36 分钟前
Python基础语法练习题(56优化版补充)
开发语言·python
专注API从业者1 小时前
告别复杂页面解析,OpenClaw 快速搭建电商商品监控与数据分析脚本
大数据·数据库·python·数据挖掘·数据分析
王立志_LEO2 小时前
HTTPX 完整用法总结
python
ggb喔2 小时前
52pojie 的图片工具:为什么无损转换后体积涨了 6 倍、照片方向还是歪的
图像处理·python·算法·计算机视觉·图形渲染·媒体
hnxaoli2 小时前
win10小程序(二十三)新建带时间文件夹
python
企业数字化笔记2 小时前
AI工具参数很多怎么办?预设、表单校验、危险参数与配置审计
java·spring boot·python·音视频
2601_962885723 小时前
如何用 Python 计算 BBI 多空指标?
开发语言·python