汉诺塔-游戏规则:
1.一次只能移动一个
2.小盘始终放在大盘上
def move(n, a, b, c):
if n == 1:print(a, '-->', c)
else:
move(n - 1,a,c,b) #将n-1个盘子,从a.移动到b上
print(a, '-->', c) #最后一个盘子从a移动到c上
move(n - 1,b,a,c)#将n-1个盘子,又从b移动到c上
后面这三句注释,每一个又是一次独立的汉诺塔游戏。直到n为1
输出
分解来看:
move(3, 'A', 'B', 'C')当n=3
move(2,a,c,b)
当n=2
move(1,a,b,c)
当n=1
print('a', '-->', 'c')print(a, '-->', b)
move(1,c,a,b)
print('c', '-->', 'b')
print(a,c)
move(2,b,a,c)
move(1,b,c,a)
print('b', '-->', 'a')
print(b, '-->', c)
move(1,a,b,c)
print('a', '-->', 'c')