问题倒推,让计算机代替执行。步骤如下:
以次设计算法,代码如下:
count = 0
def hanoi(n, a, b, c):
global count
if n == 1:
print("{}:{}->{}".format(1,a,c))
count += 1
else:
hanoi(n-1,a,c,b)
print("{}:{}->{}".format(n,a,c))
count += 1
hanoi(n-1,b,a,c)
hanoi(3,"A","B","C")
print("总共移动了{}次".format(count))
执行结果如下: