使用python的递归做一个简洁的解法:
def hanoi(src, des, mid, n):
global steps
if n == 1:
steps += 1
print("[STEP{:>4}] {}->{}".format(steps, src, des))
else:
hanoi(src, mid, des, n-1)
steps += 1
print("[STEP{:>4}] {}->{}".format(steps, src, des))
hanoi(mid, des, src, n-1)
if __name__ == "__main__":
steps = 0
N = eval(input())
hanoi("A", "C", "B", N)
效果如图: