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

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

給不明白的同學解釋一下,如果有理解錯誤請指出謝謝~

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

首先了解函數的意思,n代表個數,3個參數的意思是a通過b移動到c

然后就有了如下的內容:

遞歸的思路就是重復,我們可以看看n=1的時候,應該就是直接把a移動到c就好,所以終止條件就有了。

那如何到這個終止條件的前一步呢,正如題目所說,a應該只有最后一個圓盤,其余的都在b,所以問題就編程了將a的n-1個盤移動到b上,所以我們第二行寫move(n-1,a,c,b),注意print的時候還是a和c,這里的a和c代表的是第一個柱子和第三個柱子。

這時候我們就已經完成了第一步,將最后一個圓盤移動到了C上,然后現在的狀態是第一個柱子沒有,第二個柱子有n-1個,第三個柱子有1個,然后視第三個柱子為完成,我們現在要做的是將第二個柱子的前n-1個移動到a,最后一個移動到C,按照我們函數的寫法就應該是(n-1,b,a,c),也就是b柱子通過a柱子移動到c上。

這樣應該就比較好理解了吧~

正在回答

3 回答

? ? ? return

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

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

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

我不懂return到底返回了什么,是返回了下面這三行語句嗎?

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

幕布斯1309840

return只返回了n==1的值,下面的跟他沒關系
2016-09-27 回復 有任何疑惑可以回復我~
#2

Bjf

返回空啊
2017-09-02 回復 有任何疑惑可以回復我~

Mark一下

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

我想問問你:“def move(n, a, b, c):”這里的a,b,c,是不是分別對應,ABC,即a=A,b=B,c=C,那到后面這些abc的對應值變了沒有?還有,是哪一行操作是讓python對這個移動方案進行一一羅列的?

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

舉報

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

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

進入課程
微信客服

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

幫助反饋 APP下載

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

公眾號

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