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

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

感覺自己邏輯思維能力不行啊 題目都搞不懂

看不懂看不懂

正在回答

8 回答

還有我

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

PHP陳 提問者

啊哈哈哈
2018-11-01 回復 有任何疑惑可以回復我~
#2

qq_慕虎1372899

由于遞歸一般只有等于1或者不等于1兩種情況 1)當n = 1,是 print a + "-->" + c , move(1,a.b.c) 2) 當n = 2,"A -- > B"[move(n-1,a,c,b)],第二步"A -- C"[move(1,a,b,c)],第三步"B --> C"[move[n-1,b,a,c]]
2018-11-11 回復 有任何疑惑可以回復我~

就是第一根最下面的讓上面的都走開,他要去第三根,然后上面的就自己想辦法來回倒騰最后都上第二根上了,然后最下面那個就到了第三根,然后他又說你們剛才怎么下去的現在怎么上來,然后其他的就從第二個上面倒騰到第三根上。

move(n-1,a#起點,c#路過,b#終點)?

move(1,a,b,c)

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

? ? ??

0 回復 有任何疑惑可以回復我~
  1. 當n=1時,函數執行到return就截止,結果為a-->c,同時也得出move(1,x,y,z)的結果為x-->z(為了防止混淆,用另外三個字母代替變量)。

  2. 當n=2時,if條件不滿足,則跳過if函數塊,執行后面的語句,即move(1,a,c,b),根據move(1,x,y,z)的結果,這個地方會得到a-->b。緊接著執行print語句,得到a-->c。后面又執行move(1,b,a,c),根據move(1,x,y,z)的結果,這個地方會得到b-->c。

    因此,當n=2時,函數的執行結果為a-->b,a-->c,b-->c。通過這個結果我們也可以看出,move((2,x,y,z)的結果為x-->y,x-->z,y-->z.

    依次類推,當n=3時,我們在執行函數時就會遇到move(2,a,c,b),move(2,b,a,c)這個結果可以直接套用n=2時move(2,x,y,z)的結果為x-->y,x-->z,y-->z的結果。

  3. 綜上,該函數是一個迭代函數,會層層套用前面的結果。當然,該函數也很好的體現了該游戲的規則,建議百度了解該游戲的具體內容。

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

看了答案都沒法理解。。。

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

這個游戲是這樣子的:

?A B C三個柱子?

A柱子上有幾個圓盤 圓盤大小從上到下以此增大,最上面的圓盤最小,借助B柱子 把A柱子的所有圓盤還按照原先的順序移動到C柱子上,且移動過程中小圓盤不能在大圓盤下面 只能在大圓盤上面。(一次只能移動一個圓盤)

假如只有一個圓盤,直接移到C

有兩個圓盤,將A柱子最上面的一個移到B柱子,A剩下的一個圓盤移到C柱子,再將B柱子上最小的圓盤移到C柱子, 這樣就和A柱子開始的順序一樣

有三個圓盤,將A柱子最上面的小圓盤移到C柱子,A柱子第二個圓盤移到B柱子,C柱子上一開始移動的圓盤再移到B柱子,這時B柱子上的順序是兩個較小圓盤,A柱子有一個最大的圓盤沒動。接下來將A柱子上最大的圓盤移到C柱子上,這樣底座就弄好了。B柱子上第一個圓盤移到A柱子,B剩下的第二個移到C柱子,這時,C柱子有兩個圓盤,A柱子剩下最小的圓盤,B無圓盤,將A上最小的圓盤移到C柱子上。C柱子上三個圓盤的擺放順序就和一開始一樣了。

越多圓盤,步驟越多,必須按照大小順序來移動,所以比較麻煩,https://img1.sycdn.imooc.com//5bf254960001afdc06000600.jpg

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

還有我

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

自問自答

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

111

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

舉報

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

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

進入課程

感覺自己邏輯思維能力不行啊 題目都搞不懂

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

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

幫助反饋 APP下載

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

公眾號

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