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

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

真的不懂啊,看了評論一堆問題,我還是不知道這答案什么意思?有沒有大佬能詳細解說一下?

哈哈哈哈哈哈哈哈哈 move這是個函數嗎? 怎么 一會兒n=4 ,一會兒n=3

正在回答

4 回答

是按題目給出來的邏輯走的:

def?move(n,?a,?b,?c):
????if?n?==?1:?
???????????#如果a只有一個圓盤,可以直接移動到c;
???????????print?a,?'-->',?c
???????????return
???????????
????#如果a有N個圓盤,執行三步走策略:????
????#???首先需要把?(N-1)?個圓盤移動到?b,????
????move(n-1,?a,?c,?b)????
????#???然后,將?a的最后一個圓盤移動到c,????
????print?a,?'-->',?c????
????#???再將b的(N-1)個圓盤移動到c。????
????move(n-1,?b,?a,?c)????

move(4,?'A',?'B',?'C')
13 回復 有任何疑惑可以回復我~

n=1的時候就不用解釋了吧。主要是以下三步:

move(n-1,a,c,b)
print a, '-->', c
move(n-1,b,a,c)

1、當n>1時,需要把“a”柱除最底端圓盤的所有(n-1個)移動到“b”柱,move(n-1,a,c,b)

2、然后把“a”柱剩下的最底端圓盤(即最大圓盤)移動到“c”柱,print a, '-->', c

3、最后把第一步移動到“b”柱的所有圓盤移動到“c”柱,move(n-1,b,a,c)

邏輯就是把n-1個圓盤先移動到過渡位置,最大的移動到目標位置后,再把過渡位置的n-1個圓盤移動到目標位置。剩下的任務就是程序自動遞歸循環。

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

move為什么最后是

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


4


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

我知道move(a,c,b)是把b,c交換,如果n不為1就繼續交換,直到n為1,打印第一次是從A>C還是A>B

然后move(b,a,c)也是同理,為什么要交換就是因為大盤子不能放在小盤子上面

至于為什么要這樣交換我是根據題目給的提示蒙的

n為3結果:

A-->C????A-->B????C-->B????A-->C????B-->A????B-->C????A-->C


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

波羅僧

之前就是沒有看懂move()里面的順序是怎么回事,好像有點懂了,感謝!
2019-02-28 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

真的不懂啊,看了評論一堆問題,我還是不知道這答案什么意思?有沒有大佬能詳細解說一下?

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

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

幫助反饋 APP下載

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

公眾號

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