Discuss / Python / Macyrate

Macyrate

Topic source

Macyrate

#1 Created at ... [Delete] [Delete and Lock User]
# -*- coding: utf-8 -*-
def move(n, a, b, c):
    if n == 1:
        print(a, '-->', c)  #a只剩一个时直接移动到c
    else:
        move(n-1,a,c,b)  #要先把上面的(n-1)个挪到b上,故把b作为原来的c
        print(a, '-->', c)  #然后把最下面的挪到c,问题规模变为(n-1)
        move(n-1,b,a,c)  #再把b上的(n-1)个挪到c上,故把b作为原来的a

# 期待输出:
# A --> C
# A --> B
# C --> B
# A --> C
# B --> A
# B --> C
# A --> C
move(3, 'A', 'B', 'C')


  • 1

Reply