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

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

當輸入3時

這個代碼中輸入3個盤子時 ,程序的結果是A->C ?A->B ?C->B ?A->C ?B->A ?B->C ?A->C ? ?,而正確的結果不是應該是A->B ?A->C ?B->A ?B->C ?A->C 嗎? ?還是說程序運行的結果也是另一種方法?拜托同學們幫我看看 ?謝謝

正在回答

3 回答

你的結果不對, 第四步的時候,B上已經沒盤子了。

這有個游戲,你可以試一下。

http://www.3454.com/91990p

附帶我的代碼注釋,(我附加計算了不同盤子需要移動的步數):

https://img1.sycdn.imooc.com//5b2cbfd60001728404890479.jpg


# _*_ coding:utf-8 _*_

def move(n, a, b, c):

? ? #如果a只有一個圓盤,可以直接移動到c

? ? if n ==1:

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

? ? ? ? return 1


? ? num=move(n-1, a, c, b) # (N-1) 個圓盤移動到 b

? ??

? ? num=num+1

? ? print a, '-->', c ?#將a的最后一個圓盤移動到c

?

? ? num2=move(n-1, b, a, c) #再將b的(N-1)個圓盤移動到c

? ? return num+num2

? ??

print move(4, 'A', 'B', 'C')




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

qq_專苧_0 提問者

非常感謝!
2018-07-27 回復 有任何疑惑可以回復我~

程序運行的結果沒有錯,你提供的結果有待商榷:每次只能移動一個盤子,B本來沒有盤子,按你的說法,第一步:從A中取最小的盤子給B。第二步:取第二小的盤子給C。第三步:把B中最小的盤子給回A。第四步就有問題了,這時候B沒有盤子了,何來B給C盤子呢??

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

額 懂了 是我沒把規則搞懂

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

舉報

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

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

進入課程

當輸入3時

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

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

幫助反饋 APP下載

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

公眾號

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