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

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

漢諾塔這個任務不會做呢,答案也看不懂求解答

漢諾塔這個任務不會做呢,答案也看不懂求解答

正在回答

3 回答

建議你先下載一個坦諾塔游戲體驗一下就明白這個邏輯了。如果有三個柱子,a柱子,b柱子,c柱子,a柱子上掛著n個盤子。盤子從上到下是由小到大羅列著的,且小的必須在大的上面。

def move(n, a, b, c) ?#def 定義該函數move

????if n == 1 ?#如果柱子上只有一個盤子

????print(a,'-->',c) ?#直接輸出 a --> c即可,只有一個盤子,直接從a移動到b即可。這也是最終目的,就是把a柱子上的盤子全部移動到c柱子上。

????move(n-1,a, c, b)#共有n個盤子,先將n-1個盤子從a柱子移動到b柱子上。

????move(1, a, b, c) #將最后一個柱子從a柱子移動到c柱子上。

????move(n-1,b, a, c) #再將剛才移動到b柱子上的n-1個盤子移動到c柱子上。

可以自己代入下2個或者3個自行整理下邏輯就好了。


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

def move(n, a, b, c):

? ? if n ==1: ? ? ? ? ? ? ? ? ? ? #只有一個,直接把a的圓盤換到c

? ? ? ? print a, '-->', c ? ? ?#這樣輸出的意思就是a?移動到 c

? ? ? ? return

?#n>1時

? ? move(n-1, a, c, b) ? ?#根據題意首先需要把 (N-1) 個圓盤從a移動到 b。然后,將 a的最后一個圓盤移動到c(n==1即最后一個)這里因為遞歸調用了本函數,所以會循環執行下去直到遇到n==1,執行上面三行代碼

? ? print a, '-->', c ? #打印步驟

? ? move(n-1, b, a, c) #再將b的(N-1)個圓盤移動到c。



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

尷尬了,我也看得不是很明白

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

舉報

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

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

進入課程

漢諾塔這個任務不會做呢,答案也看不懂求解答

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

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

幫助反饋 APP下載

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

公眾號

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