課程
/后端開發(fā)
/Python
/初識Python
答案的思路是怎樣的?最高票的代碼沒說明遞歸中的C --> A 問題,有人知道完整思路么
2016-12-22
源自:初識Python 7-5
正在回答
MyEclipse有激活工具的此外,if,else,elseif這些是語義結(jié)構(gòu),不用分號結(jié)尾
def?move(n,?a,?b,?c): ????if?(n?==?1): ????????print?a,'-->',c ????else: ????????move(n?-?1,a,c,b) ????????move(1,a,b,c) ????????move(n?-?1,b,a,c) ???????? move(4,?'A',?'B',?'C')
這里 'A','B','C'三個柱子的地位是對稱的
1.當(dāng)柱子a上只有一個圓盤時,只要講它從a移動到c就可以了;
2.當(dāng)柱子a上面有n(n > 1)個圓盤時,假設(shè)我們已經(jīng)擁有了能夠完成功能的move函數(shù),我們可以把這個問題分為以下三個步驟:
1)先將柱子b和c互換,然后調(diào)用函數(shù)move(n - 1,a,c,b),這樣就可以把a上的 n - 1個盤子,放到b上,此時a上還剩1個盤子,b上有n - 1個盤子,c上沒有盤子;
2)然后調(diào)用函數(shù)move(1,a,b,c)將a上的盤子放到c上,此時a上沒有盤子,b上有n - 1個盤子,c上有1個盤子;
3)最后,將柱子b和a互換,調(diào)用函數(shù)move(n - 1,b,a,c)將b上的 n - 1個盤子放到c上,就完成了任務(wù)。
舉報
學(xué)python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2022-03-23
MyEclipse有激活工具的此外,if,else,elseif這些是語義結(jié)構(gòu),不用分號結(jié)尾
2016-12-22
這里 'A','B','C'三個柱子的地位是對稱的
1.當(dāng)柱子a上只有一個圓盤時,只要講它從a移動到c就可以了;
2.當(dāng)柱子a上面有n(n > 1)個圓盤時,假設(shè)我們已經(jīng)擁有了能夠完成功能的move函數(shù),我們可以把這個問題分為以下三個步驟:
1)先將柱子b和c互換,然后調(diào)用函數(shù)move(n - 1,a,c,b),這樣就可以把a上的 n - 1個盤子,放到b上,此時a上還剩1個盤子,b上有n - 1個盤子,c上沒有盤子;
2)然后調(diào)用函數(shù)move(1,a,b,c)將a上的盤子放到c上,此時a上沒有盤子,b上有n - 1個盤子,c上有1個盤子;
3)最后,將柱子b和a互換,調(diào)用函數(shù)move(n - 1,b,a,c)將b上的 n - 1個盤子放到c上,就完成了任務(wù)。