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

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

參考代碼的意義

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')

能給我詳細解釋一下嗎

正在回答

2 回答

def move(n, a, b, c):? ?#? ?該函數的目的是將N個a柱子上的圓盤移動到c上。也就是第二個參數的上的圓盤放到第四個參數上。

? ? if n == 1:? ? ? ? ? ? ? #? ? ?如何只有一個? ?直接將a上的圓盤移動到c上。

? ? ? ? print a,'-->',c

? ? ? ? return? ? ? ? ? #目標完成,結束。

? ? move(n-1,a,c,b)? ? ? #如何a上不只有一個,那么先將a上出底盤外的n-1個圓盤移動到b上,注意函數的目的,是將第二個參數上的圓盤移動到第四個參數上,故而需將第b與c對調,表示將n-1的圓盤先移動到b上。

? ? print a,'-->',c? ? ? ? ? ?# 將a的底盤放到C

? ? move(n-1,b,a,c)? ? ? ?#最后再將b上的n-1個圓盤放到c上。


move(4, 'A', 'B', 'C')


6 回復 有任何疑惑可以回復我~
#1

慕姐4424294

大神正解??!我懂了
2018-07-18 回復 有任何疑惑可以回復我~
#2

小萌新qwq

看了一圈問答 謝謝大佬 懂了
2018-07-19 回復 有任何疑惑可以回復我~

這個你要一層一層按順序看下來 ,用n = 3 想看起來,?move(n-1,a,c,b) 第一次進出這里面,n 變成2 b -> c, c ->b. 注意字母的賦值變化。在里面重新運行一次move函數,還會有move(n-1,a,c,b),n變為1,b、c回到原來的值。注意這里可以說是函數里的函數里的函數,第三層了。這一層return,結束了,是回到第二次 print a,'-->',c? ? ?move(n-1,b,a,c). 這個時候的n是2,進入一次move(n-1,b,a,c).?

邏輯上并不能,只是感覺我們人腦進行這樣的思考,很容易混淆吧不熟練的話??梢阅靡粡埓蟮募垼粚訉勇孪聛?,會比較清晰吧。


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

舉報

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

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

進入課程

參考代碼的意義

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

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

幫助反饋 APP下載

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

公眾號

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