漢諾塔問題 -遞歸實現

一共就三步

  1. 把 n-1 號盤子移動到緩衝區
  2. 把1號從起點移到終點
  3. 然後把緩衝區的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)
  1. 要從a到b 那c就是緩衝 move(n-1,from,to,buffer)
  2. 要從a到c 那b就是緩衝 move(1,from,buffer,to)
  3. 要從b到c 那a就是緩衝 move(n-1,buffer,from,to) 

原文鏈接:https://www.zhihu.com/question/24385418

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章