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

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

相关推荐
智算菩萨5 分钟前
【Python机器学习】分类模型评估体系的全景解析:准确率、精确率、召回率、F1 分数与 AUC
python·机器学习·分类
七夜zippoe6 分钟前
Python迭代器与生成器深度解析:从原理到协程应用实战
开发语言·python
2401_841495647 分钟前
Python适合开发的游戏
python·游戏·pygame·tkinter·panda3d·arcade·ursina
Sunsets_Red12 分钟前
待修改莫队与普通莫队优化
java·c++·python·学习·算法·数学建模·c#
艺术是真的秃头23 分钟前
Trae:当编程从“编写”转向“对话”与“委派”
人工智能·python·ai·aigc
奕成则成28 分钟前
Django使用
后端·python·django
38242782734 分钟前
使用 webdriver-manager配置geckodriver
java·开发语言·数据库·爬虫·python
牛奔38 分钟前
macOS 使用 conda,同时本地安装了python,遇到 ModuleNotFoundError: No module named ‘xxx‘` 解决
开发语言·python·macos·conda
咕白m62540 分钟前
通过 Python 提取 PDF 表格数据(导出为 TXT、Excel 格式)
后端·python
我送炭你添花40 分钟前
Pelco KBD300A 模拟器:01+1.KBD300A 通用键盘详解:DIP 开关与接口配置
python·计算机外设·运维开发