課程
/后端開發
/Python
/初識Python
感覺能想出漢諾塔問題的代碼的人特別厲害,讓我寫 我根本不知道應該從哪里思考!有沒有大神會這個問題的,能不能給我講講怎么做出這個問題的,
2018-08-18
源自:初識Python 7-5
正在回答
def move(n, a, b, c):
? ? n1 = a + '-->' + c
? ? if n == 1:
? ? ? ? return n1
? ? return move(n-1,a,c,b) + n1+ move(n-1,b,a,c)
最后一步return就是把a,b,c位置互調,用遞歸,調用n-1移動的方式,最后像夾心餅干一樣返回值...
遇到這種問題你可以從n=1開始,然后把每一步驟都寫出來。
巴拉巴拉巴拉01
f(n,a,b,c): 先把a上面的n-1個移到b,即f(n-1,a,c,b);把a最后一個移到c;再把b上的n-1個移到c,即f(n-1,b,a,c)。
要移動a最下面的,上面n-1個要拿走,且c上要是空的。
舉報
學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2018-08-20
def move(n, a, b, c):
? ? n1 = a + '-->' + c
? ? if n == 1:
? ? ? ? return n1
? ? return move(n-1,a,c,b) + n1+ move(n-1,b,a,c)
最后一步return就是把a,b,c位置互調,用遞歸,調用n-1移動的方式,最后像夾心餅干一樣返回值...
2018-08-20
遇到這種問題你可以從n=1開始,然后把每一步驟都寫出來。
2018-08-18
f(n,a,b,c): 先把a上面的n-1個移到b,即f(n-1,a,c,b);把a最后一個移到c;再把b上的n-1個移到c,即f(n-1,b,a,c)。
要移動a最下面的,上面n-1個要拿走,且c上要是空的。