发布时间:2019-08-05 15:33:48编辑:auto阅读(2435)
总结归纳为以下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的神奇魔法
48868
47939
38714
35861
30287
27039
26072
20907
20711
19069
510°
604°
612°
614°
589°
575°
643°
715°
834°
934°