沒有b-->c 但是輸出了這個
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) ? ?###print b, '-->',c ? ? move(4, 'A', 'B', 'C') #為啥不用添加一個b-->c 呢 ? 而且 ? 結果里面居然有b-->c ? 求解惑
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) ? ?###print b, '-->',c ? ? move(4, 'A', 'B', 'C') #為啥不用添加一個b-->c 呢 ? 而且 ? 結果里面居然有b-->c ? 求解惑
2017-05-15
舉報
2017-05-15
看到底部還有一個move(n-1, b, a, c)這個遞歸函數。
1,n=4 , A , B, C
2,n=3 , A , C, B
3,n=2 , A , B, C
4,n=1 , A , C, B
執行 第四行的 print a, '-->', c, n
打印 print A --> B ?1
return 返回 所以這是當n=1這個函數跳出去,跳入到n=2這個函數里面
n = 2 A, B, C
執行 第0行的 print a, '-->', c, n
打印 print A --> C 2
執行第二行的move(n-1, b , a, c)
因為當前的函數是 n = 2 A, B, C
所以依次執行 ,
n = 2?
move(2-1, B, A, C)
執行 n==1
執行打印 第4行的 print a, '-->', c, n
打印 B --> C 1
..........
所以以此類推
2017-05-16
研究了半小時,終于能理解了,謝謝大神