汉诺塔问题之前困扰了好久,这次看了一些视频和博客大概有了思路,简单理解就是把需要移动的盘子一层一层剥离,先把除了最后一个盘子移到中转杆b,最后只有一个盘子的时候将其直接移动到目的c杆上,然后向上回归将余下的盘子移动到c杆。
def hanoi(n, a, b, c):
if n==1:
print(a, '-->', c)
else:
hanio(n-1, a, c, b) #先把n-1个盘子移到b上
print(a, '-->', c) #将最下面的盘子移到c上
hanio(n-1, b, a, c) #将b上的盘子移到c上
hanoi(3, 'a', 'b', 'c')