Discuss / Python / 如果加上序号肯定会更好的理解点,将大小盘用1,2,3表现出来。

如果加上序号肯定会更好的理解点,将大小盘用1,2,3表现出来。

Topic source

starwind徐

#1 Created at ... [Delete] [Delete and Lock User]
B=[]
def move(n,a,b,c):
    if n==1:
        buzhou=a+str(n)+'-->'+c+str(n) #一个圆盘需要从A到C操作步骤
        B.append(buzhou)
    else:
        move(n-1,a,c,b) #将前n-1个盘子从A移动到B上
        buzhou=a+str(n)+'-->'+c+str(n) #将A柱的第n个盘移到C柱操作步骤
        B.append(buzhou) #向列表中添加操作步骤
        move(n-1,b,a,c) #将B上的n-1个盘子移动到C上
move(3,'A','B','C')
print('总共需要操作'+str(len(B))+'次,\n'+'操作过程为:',B)

当n=3的时候结果就是这样了:

总共需要操作7次,
操作过程为: ['A1-->C1', 'A2-->B2', 'C1-->B1', 'A3-->C3', 'B1-->A1', 'B2-->C2', 'A1-->C1']

  • 1

Reply