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

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

看不懂代碼里的abc怎么換的同學可參考鏈接

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


正在回答

4 回答

我按自己的理解:

簡單講解一下3和2層,然后自己驗證4層的移動,驗證move(4,a,b,c)的第一步驟move(3,a,c,b)下面的7個步驟就可以。

2層:


move (2,a,b,c)

? ?#都會先判斷是否為1

? ?#然后不是,就會進行接下來三步: 1:move(n-1, a, c, b),2: print a, '-->', c,3:move(n-1, b, a, c)

? ?1:move(1,a,c,b)#分析此處的內部運作

? ? ? ?#因為是1,所以不走三步,直接執行if下print a-c,但是這里可能就導致不好理解了

? ? ? ?#其實這里是指print 1位到3位,可見在 move(1,a,c,b)中,1位是a,3位是b

? ? ? ?#打印結果是A--》B

? ?2:print a-c #其實也是執行print本層move的 1位到3位 ?

? ? ? ? #在本層的move (2,a,b,c)中,1位是a,3位是c

? ? ? ?#打印結果是A--》C

? 3:move(1,b,a,c)

? ? ? ?#因為是1,所以執行print a-c---》print 1位到3位,1位是b,3位是c

? ? ? ?#打印結果是B--》C

? ? ? ?#后面不在重復打印的是本層move的1位到3位

? ? ? ?AB ?AC ? BC

3層:

?move(3,a,b,c)

? ? #判斷不是1

? ? #進入接下來三步

? ? 1:move(2,a,c,b)

? ? ? ? #這里的abc位置剛才沒講,因為剛才和程序的變化一樣

? ? ? ? #這里因為有多層,講解一下:

? ? ? ? #1步驟:move(n-1, a, c, b)程序的意思是,上層的move里的第二位和第三位互換

? ? ? ? #3步驟:move(n-1, b, a, c)程序的意思是,上層move里的第一位和第二位互換

? ? ? ? #這里2不是1,所以要進行三步

? ? ? ? ①:move(1,a,b,c)#上層move的2,3位互換

? ? ? ? ? ? ????????#打印結果是A--》C

? ? ? ? ②:打印結果是A--》B

? ? ? ? ③:move(1,c,a,b)#上層move的1,2位互換

? ? ? ? ? ??????????#打印結果是C--》B

? ? ?2:打印結果是A--》C#提示一下,本層是:move(3,a,b,c)

? ? ?3:move(2,b,a,c)#上層move的1,2位互換

? ? ? ? ?①:move(1,b,c,a)#上層move的2,3位互換

? ? ? ? ? ? ?????????#打印結果是B--》A

? ? ? ? ?②:打印結果是B--》C

? ? ? ? ?③:move(1,a,b,c)#上層move的1,2位互換

? ? ? ? ? ? ?????????#打印結果是A--》C ?

AC ? AB ? CB ? AC ? BA ? BC ? AC?


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

慕移動7552751

看不懂,嗚嗚
2019-05-13 回復 有任何疑惑可以回復我~

你好這個網頁搜不到~

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

weixin_慕虎5413914 提問者

不好意思啊,我現在也進不去了,不知道怎么回事
2019-04-15 回復 有任何疑惑可以回復我~

搜不到呀

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

weixin_慕虎5413914 提問者

不好意思啊,我現在也進不去了,不知道怎么回事
2019-04-15 回復 有任何疑惑可以回復我~

本來看不懂代碼里的abc是怎么換來換去的,參考了大神的文章,很容易理解,共享給大家http://fourcolor.oursnail.cn/2019/02/26/algorithms-basic/%E5%9F%BA%E7%A1%80%E7%AE%97%E6%B3%952-%E6%B1%89%E8%AF%BA%E5%A1%94%E9%97%AE%E9%A2%98/

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

舉報

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

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

進入課程

看不懂代碼里的abc怎么換的同學可參考鏈接

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

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

幫助反饋 APP下載

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

公眾號

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