為什么會這樣呢
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各輸出一次呢,求解
2020-02-20
借用其他大神的遞歸函數圖,并把其中的小瑕疵修改掉了。整個遞歸函數過程很清晰,再有不明白的可以繼續提問。
2019-11-21
你可以看一下我的筆記,我把過程都列出來了可能會好理解一些漢諾塔的問題,但是遞歸函數我還是有點模糊
2019-11-10
把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)