关于用递归实现的原理,请查看我之前的文章:
C语言与汉诺塔
C#与汉诺塔
以下为代码:
count = 0
def move(pile, src, tmp, dst):
global count
if pile == 1:
print(src,'-->', dst)
count += 1
else:
move(pile-1, src, dst, tmp)
move(1, src, tmp, dst)
move(pile-1, tmp, src, dst)
num = int(input('输入汉诺塔层数:'))
move(num, 'A', 'B', 'C')
print('一共移动了%d步' %count)
运行结果: