課程
/后端開發
/Python
/初識Python
C --> B ?C-->A是怎么來的明明沒有move(n-1,c,b,a) 為什么能得到C-->
2016-12-02
源自:初識Python 7-5
正在回答
樓主,我解決了。
def move(n,a,b,c):#為了解釋,我叫a為位置1,b為位置2,c為位置3if n == 1:print a,'-->',creturnmove(n-1,a,c,b)#這一句實現了整個過程中的全部2,3位置互換print a,'-->'cmove(n-1,b,a,c)#這一句實現了整個過程中的全部1,2位置互換move(4,'A','B','C')#所以總的來看,C是可以實現先和B互換再跟A互換的
慕粉2014408783 提問者
神愛鬻 回復 慕粉2014408783 提問者
樓主不妨這樣理解:遞歸實現的過程中“源柱,過度柱,目標柱”是改變的。
????
同問,樓主解決了嗎?
這是應為具有遞歸關系,你想想,通過上面的代碼,b的位置可以到最后的時候移動到a的位置上,而中間的函數move(n-1,a,c,b),此時c的位置相當于之前b的位置,那么在其函數內部遞歸時,可以像之前b一樣走到a的位置上,就形成了C-->
xiyangwugang 回復 慕粉2014408783 提問者
慕粉2014408783 提問者 回復 xiyangwugang
能上代碼看看?
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-12-28
樓主,我解決了。
def move(n,a,b,c):#為了解釋,我叫a為位置1,b為位置2,c為位置3
if n == 1:
print a,'-->',c
return
move(n-1,a,c,b)#這一句實現了整個過程中的全部2,3位置互換
print a,'-->'c
move(n-1,b,a,c)#這一句實現了整個過程中的全部1,2位置互換
move(4,'A','B','C')#所以總的來看,C是可以實現先和B互換再跟A互換的
2017-01-22
樓主不妨這樣理解:遞歸實現的過程中“源柱,過度柱,目標柱”是改變的。
????
2016-12-28
同問,樓主解決了嗎?
2016-12-02
這是應為具有遞歸關系,你想想,通過上面的代碼,b的位置可以到最后的時候移動到a的位置上,而中間的函數move(n-1,a,c,b),此時c的位置相當于之前b的位置,那么在其函數內部遞歸時,可以像之前b一樣走到a的位置上,就形成了C-->
2016-12-02
能上代碼看看?