我不明白有三個盤子的時候

這上面是代碼,第一個地方和第二個地方的輸出我做了標記。
我在草稿紙上推算,的確是第一個盤子要從A移動到C上。但是我不明白這個代碼,第一輸出為什么會是“A ##--> C”
因為我的理解是當執行“move(3, 'A', 'B', 'C')”這行代碼時
n=3,所以if條件不成立,就會向下執行“move(n-1,a,c,b)”這行代碼,進入遞歸,
這個時候n=2,if條件還是不成立,所以還會向下執行“move(n-1,a,c,b)”這行代碼,再次進入遞歸,
這時n=1了,執行if語句,可是這個地方“move(n-1,a,c,b)”這行代碼的形參順序時變化了的,
if語句里面“print a,'##-->',c”這個c的值不應該時B嗎?
但是為什么第一行輸出的卻是“A ##--> C”
(我知道它本身是應該這樣的,但是我不理解這個代碼為什么會這樣輸出,我的理解肯定有問題,謝謝各位大神指教)

2017-08-08
n=3 abc n=2 acb n=3abc,是這樣嗎
2017-08-12
你好,我想問一下,為什么只有ABC三個盤,但是N等于4?
2017-08-08
我弄到VS里面去執行了下,看了下具體過程,終于搞清楚了。。
n ? a ? b ? c
3 ? A ? B ? C
2 ? A ? C ? B
1 ? A ? B ? C