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

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

漢諾塔的移動問題

這個移動的函數不是很理解:

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)

求解答

正在回答

3 回答

流程誰都明白, 簡單的形參換換位置的事兒,可是輸出結果不對啊 按照游戲規則 不應該是

第一步輸出 N-1 個 A-->B,

第二部輸出 1個? ? ?A--> C,

第三部輸出 N-1個? B-->C? 這樣print輸出結果才對吧?????


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

剛剛把思路順好了。

if n==1:

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

? ? ? ?return?

1)首先,當n為1時,只需要將A上面的唯一一個移動到C上面;

move(n-1,a,c,b)

2)其次,若n不為1,則將A上面除了最下面最大的盤子之外,也就是n-1個移動到B上面;

print a,'-->',c

3)經過上一步,A現在只有一個盤子了,則只需要將這一個移動到C上面;

move(n-1,b,a,c)

最后一步,就是將B上面的盤子移動到C上。

這是總體的思路從第二步開始就開始有內部的循環了,現在,B上面有n-1個盤子,此時的B就相當于上面講的A,此時的應為:(n-1,b,a,c)。然后想辦法把B上面的移動到c上面。以此類推,直到A,B均為空,C上的盤子按順序派好,就是整個遞歸的過程。

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

同表示沒看懂

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

舉報

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

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

進入課程

漢諾塔的移動問題

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

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

幫助反饋 APP下載

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

公眾號

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