Discuss / Python / 评论给的启发

评论给的启发

Topic source

YOUTH

#1 Created at ... [Delete] [Delete and Lock User]
def move(n, a, b, c):
    if n == 1:
        print(a, '-->', c)
    else :
        #先将最底部的移动到正确位置
        move(n-1, a, c, b)
        move(1, a, b, c)
        #再把其余的看成一个新的同样但规模更小的问题解决
        #此时无论怎么操作最底部的已经移动到该有的位置,不会受到影响
        move(n-1, b, a, c)
# 期待输出:
# A --> C
# A --> B
# C --> B
# A --> C
# B --> A
# B --> C
# A --> C
move(3, 'A', 'B', 'C')

A --> C

A --> B

C --> B

A --> C

B --> A

B --> C

A --> C


  • 1

Reply