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

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

請問n不為1時,這里的print為什么還是a->c而不是a->b呢?

請問各位大神,這里為什么還是a->c?前面已經變成move(n-1,a,c,b)了,這里為什么不是a->b呢?為什么move(n-1,b,a,c)之后不用再print了呢?謝謝大家。

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


正在回答

2 回答

遞歸調用,原函數定義的是 move(n,a,b,c),調用move(n-1,a,c,b)之后,相當于n=n-1,a='a',b='c',c='b',

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

Raven_Lee 提問者

非常感謝!
2017-04-01 回復 有任何疑惑可以回復我~

當n≠1時,其實分成兩個過程:1.先把n-1塊原盤從a移到b,也就是move(n-1,a,c,b),把最后一塊原盤從a移到c,也就是print?a,'-->',c;2.再把n-1塊原盤從b移到c,也就是move(n-1,b,a,c),這里總共只有n-1塊,都移完了所以不用print了

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

舉報

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

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

進入課程

請問n不為1時,這里的print為什么還是a->c而不是a->b呢?

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

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

幫助反饋 APP下載

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

公眾號

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