发布时间:2019-08-05 15:33:48编辑:auto阅读(2665)
总结归纳为以下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的神奇魔法
51275
50719
41323
38135
32597
29504
28354
23222
23190
21512
1587°
2307°
1918°
1861°
2185°
1901°
2591°
4333°
4189°
2985°