pc建站网站推广培训班
# 初始化步骤计数器
 i = 1
# 定义移动盘子的函数
 def move(n, mfrom, mto):
     global i  # 使用全局变量i来跟踪步骤
     print("第%d步:将%d号盘子从%s->%s" % (i, n, mfrom, mto))  # 打印移动步骤
i += 1 # 步骤计数器加1
#第一种方法
# 定义汉诺塔问题的递归函数
 def honol(n, A, B, C):
     if n == 1:  # 如果只有一个盘子,直接移动到目标柱
         move(1, A, C)
     else:
         honol(n-1, A, C, B)  # 递归地将上面的n-1个盘子从A移动到B
         move(n, A, C)  # 将第n个盘子从A移动到C
         honol(n-1, B, A, C)  # 递归地将B上的n-1个盘子移动到C
try:
     n = int(input("please input a number:"))  # 请求用户输入盘子的数量
     print("移动步骤如下:")  # 提示用户即将显示移动步骤
     honol(n, 'A', 'B', 'C')  # 调用汉诺塔函数,开始移动盘子
 except ValueError:  # 如果输入不是整数,则捕获异常
     print("please input a integer n(n>0)!")  # 提示用户输入一个正整数
第二种方法
def hanoi(n,x,y,z):if n == 1:print(x,"-->",z)else:hanoi(n-1,x,z,y)print(x,"-->",y)hanoi(n-1,y,x,z)
while True:n=int(input("请输入汉诺塔的层数:"))hanoi(n,"x","y","z") 
输出结果:
第一种方法:

第二种
