亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么會這樣呢

def move(n, a, b, c):
??? if n ==1:
??????? print (a, '-->', c)
??????? return
??? move(n-1, a, c, b)
??? print (a, '-->', c)
??? move(n-1, b, a, c)
move(4, 'A', 'B', 'C')

輸出結果:

A --> B
A --> C
B --> C
A --> B
C --> A
C --> B
A --> B
A --> C
B --> C
B --> A
C --> A
B --> C
A --> B
A --> C
B --> C

為什么 A -->C ,B -->C 各輸出四次,A -->C 輸出三次,C -->A 輸出兩次,C --> B, B -->A各輸出一次呢,求解

正在回答

3 回答

借用其他大神的遞歸函數圖,并把其中的小瑕疵修改掉了。整個遞歸函數過程很清晰,再有不明白的可以繼續提問。

http://img1.sycdn.imooc.com//5e4e315000011df512050764.jpg

0 回復 有任何疑惑可以回復我~

你可以看一下我的筆記,我把過程都列出來了可能會好理解一些漢諾塔的問題,但是遞歸函數我還是有點模糊

0 回復 有任何疑惑可以回復我~

把n個從a依靠b移動到c,你在a通過c移動到b上n-1個之后,a上剩了一個,你要先把a上這個移動到c,就是print(a+'-->', c),這時才是解決了移動a最底下那個到c的過程,然后這時n-1個在b上,自然就是b上的n-1個通過a移動到c了,move(n-1, b, a, c)

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

為什么會這樣呢

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號