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,c,a)
print(move(3,'A','B','C'))
# 期待输出: # A --> C # A --> B # C --> B # A --> C # B --> A # B --> C # A --> C move(3, 'A', 'B', 'C')
在递归的思想里,把问题简单化。 n 个盘子,从 a 经过 b 移动到 c 那分三步,
- 把最上面 (n-1) 个盘子从a, 经过c 移动到b
- 把1个盘子,从a 直接移动到 c
- 把b 上的 n-1 个盘子从 b 经过 a 移动到c 至于怎么把 n-1个盘子移过去,那是另一层move干的事,我不管。