一共就三步
- 把 n-1 號盤子移動到緩衝區
- 把1號從起點移到終點
- 然後把緩衝區的n-1號盤子也移到終點
所以寫成py代碼就是
def move(n,from,buffer,to):
if n==1:
print('Move',n,'from',from,'to',to)
else:
move(n-1,from,to,buffer)
move(1,from,buffer,to)
move(n-1,buffer,from,to)
- 要從a到b 那c就是緩衝 move(n-1,from,to,buffer)
- 要從a到c 那b就是緩衝 move(1,from,buffer,to)
- 要從b到c 那a就是緩衝 move(n-1,buffer,from,to)
原文鏈接:https://www.zhihu.com/question/24385418