steps = 0 #计算步数,一共移动几次完成
def hanoi(src, mid, des, n): #这个函数接收ABC三个柱子和圆盘个数N
global steps #将steps作为全局变量
if n == 1: #如果圆盘只有一个的话一部就完成了
steps += 1
print("[STEP{:>4}] {}->{}".format(steps, src, des)) #直接将圆盘从A移动到C
else:
hanoi(src,des,mid,n - 1) #第一步,将A上的圆盘全部移动到B
steps += 1
print("[STEP{:>4}] {}->{}".format(steps, src, des))
hanoi(mid,src,des,n - 1) #第二部,将B上的圆盘全部移动到C
N = eval(input()) #N是几阶的汉诺塔,就是一共有几个可移动的圆盘
hanoi("A", "B", "C", N)
用Python完成汉诺塔
最新推荐文章于 2023-03-01 17:55:46 发布