Python基础入门学习笔记 024 递归:汉诺塔


递归求解汉诺塔

?对于游戏的玩法,我们可以简单分解为三个步骤

–将前个盘子从X移动到Y上。

–将最底下的第64个盘子从X移动到Z上。

–将Y上的个盘子移动到Z上。

?问题一:将X上的个盘子借助Z移到Y上;

?问题二:将Y上的个盘子借助X移到Z上。

?对于游戏的玩法,我们可以简单分解为三个步骤

–将前个盘子从X移动到Y上。

–将最底下的第64个盘子从X移动到Z上。

–将Y上的个盘子移动到Z上。

?问题一:将X上的个盘子借助Z移到Y上;

?问题二:将Y上的个盘子借助X移到Z上。

实例:

1 def hanoi(n, x, y, z): 2 if n == 1: 3 print(x, ' > ', z) 4 else: 5 hanoi(n1, x, z, y) # 将前n1个盘子从x移动到y上 6 print(x, ' > ', z) # 将最底下的最后一个盘子从x移动到z上 7 hanoi(n1, y, x, z) # 将y上的n1个盘子移动到z上 8 9 n = int(input('请输入汉诺塔的层数:')) 10 hanoi(n, 'X', 'Y', 'Z')



上一篇:Python基础入门学习笔记 015字符串:格式化

下一篇:Python基础入门学习笔记 016 序列!序列!


Python
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图