发布时间:2019-08-05 15:33:48编辑:auto阅读(2590)
总结归纳为以下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的神奇魔法
50520
49833
40424
37436
31857
28725
27655
22432
22432
20746
518°
1140°
926°
859°
1107°
979°
1598°
2974°
2668°
2032°