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