【Python学习日记】递归实现hanoi塔

来源:互联网 发布:常见面试算法题 编辑:程序博客网 时间:2024/06/05 14:15
def move(n, a, b, c):    if n == 1 :      print('%s - -> %s' % (a,c) )      return     else :      move(n-1, a, c, b)#--   move(1, a, b, c)       print('%s - -> %s' % (a,c) ) #-- 直接写这个减少递归调用的次数      move(n-1, b, a, c)      return 

代码分析:

else 里需要完成三个步骤:把n-1个拿到另一个,把第n个放到指定地方,再把n-1个放到指定地方。

调用:

move(3, 'A', 'B', 'C')

运行结果:

输出: A --> C A --> B C --> B A --> C B --> A B --> C A --> C


0 0
原创粉丝点击