您的位置:首页 > 编程语言 > Python开发

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

2016-06-23 22:00 295 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归