查看完整版本: [C語言]左右為難的小偷-stack篇
頁: [1]

123321why 發表於 2016-12-30 07:28 PM

[C語言]左右為難的小偷-stack篇

左右為難的小偷 -stack 篇問題描述:長廊上展示了許多貴重物品。小偷背著空的背包,站在長廊的開端。小偷一步一步往長廊的盡頭走,並把貴重的東西往背包裡塞,希望走到盡頭時,能有最豐盛的收穫。在偷東西的過程中,有下面幾點限制 :
[*]小偷背包最多能裝 20kg 的物品,且為一個 stack 。
[*]每樣物品有三個屬性,分別為 name(char) , value(float) ,以及 weight(float ) ,會依序放在長廊上 。
[*]小偷在長廊上是無法回頭的,所以確定捨棄的物品無法再次偷取。
[*]如果背包總重量未達 20kg ,小偷就可以把偷來的物品放進背包。
[*]如果當新偷的物品放不下時,小偷會拿出背包最上面的物品,並判斷以此交換新物品是否值得?所謂「值得」是指:「此物品價值小於新偷物品,且捨棄該物品後新物品就可放進背包」。如果不值得,則暫時放到地上 ( 另一個 stack 裡 ) ,再從包包拿下一個物品;上述動作會反覆進行直到找到值得交換的物品,或者包包內已無待判斷物品為止。
[*]如果找到值得捨棄的物品,捨棄該物品。接著將地上的東西依序塞回背包,最後再將新物品放入背包中 ( 如果放得下的話 ) 。
最後請顯示出偷到的所有物品、總重量與總價值輸入說明:5 個物品會作為輸入,成為長廊上的展示品。格式為: {name} {value} {weight} 分隔符號為一格空格,每輸入一個物品換一行。輸出說明:由背包上方開始依序取出並展示所偷到的物品,格式為: {name} {value} {weight} ,另顯示所偷物品之總重量weight:與總價值value:。範例:
Sample Input
Sample Output

b 50 2.5
c 100 16
d 52 1
e 55 1.5
f 60 2
f 60.0 2.0
e 55.0 1.5
c 100.0 16.0
weight:19.5
value:215.0

b 40 10.5
c 30 8.5
d 65 5
e 85 4.5
f 100 10
f 100.0 10.0
e 85.0 4.5
d 65.0 5.0
weight:19.5
value:250.0




只有找到C++的 沒有找到C的..
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>
頁: [1]