发布时间:2019-08-05 15:33:48编辑:auto阅读(2121)
总结归纳为以下3步:
# Python3递归实现汉诺塔游戏
def hannota(n,x,y,z): # n是盘子数,x,y,z为形参作为柱子
if n == 1: # 递归出口
print(x,'-->',z)
return # 返回None
else:
hannota(n-1,x,z,y) # 把x上的n-1个盘子借助z,移动到y上
hannota(1,x,y,z) # 把x上最下面的盘子移动到z上
hannota(n-1,y,x,z) # 最后把y上的n-1个盘子借助x移动到,z上,大功告成
hannota(3,'X','Y','Z') # 传递实参进去
放一张我自己画的图,里面记录了函数执行的每一步的过程。重点在注意形参和实参的传递问题。
输出结果:
上一篇: 用python解析xml的几种方法
下一篇: python3,浅谈with的神奇魔法
47448
45729
36737
34265
28921
25552
24397
19573
19055
17594
5414°
6006°
5520°
5597°
6519°
5326°
5335°
5843°
5815°
7116°