汉诺塔游戏:请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量
# 然后打印出把所有盘子从A借助B移动到C的方法,例如:
def move(n, a, b, c):
if n == 1:
print(a, '-->', c)
else:
move(n - 1, a, c, b)
print(a, '-->', c)
move(n - 1, b, a, c)
# 调用
move(3, 'A', 'B', 'C')
A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C
当n=3 时程序执行顺序:
第一次循环:move(2,a,c,b),a-c,move(2,b,a,c)
第二次循环:(move(1,a,b,c),a-b,move(1,c,a,b)), a-c , (move(1,b,c,a),b-c,move(1,a,b,c))
结果:(a-c,a-b,c-b),a-c,(b-a,b-c,a-c)
当n=2 时执行顺序:
第一次循环move(1,a,c,b),a-c,move(1,b,a,c)
结果:a-b,a-c,b-c