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

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

相关推荐
Yolanda_20225 分钟前
Python学习-第九部分-错误处理与异常处理
开发语言·python·学习
这个人懒得名字都没写42 分钟前
Flask + PyArmor Gunicorn启动报错:RuntimeError: unauthorised use of script
python·flask·gunicorn·pyarmor
C++、Java和Python的菜鸟1 小时前
第10章 后端Web进阶(Maven高级)
开发语言·python
暗黑小白1 小时前
路由策略与引擎可替换性
后端·python·ai agent
小罗水1 小时前
第 20 章 高级 RAG 技术与检索优化
人工智能·python·机器学习
bamb002 小时前
一个项目带你入门AI应用开发06
python
liwulin05062 小时前
【ESP32S3】调用百度云语音合成接口后重启
python
m沐沐2 小时前
【机器学习】矿物识别系统实战——六种填充方法×六种模型全面对比
人工智能·python·深度学习·机器学习·矿物识别
软糖姐姐2 小时前
Python:__closure__ 详解
python·闭包·__closure__·自由变量·cell对象
月光船幽幽2 小时前
四层公理框架驱动AI健康诊断
人工智能·python·科技·算法·安全