[問題] 找零錢的問題

看板C_and_CPP (C/C++)作者 (吃飯睡覺打東東)時間15年前 (2011/07/10 15:52), 編輯推噓2(2032)
留言34則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 假設銅板有1元、5元、50元共三種,媽媽請小明去菜市場買水果,給了小明N元 老闆找小明的零錢的數目要最少,而小明到了水果攤買了a1顆蘋果,a2顆柳丁,及a3顆桃子, 1顆蘋果15元,1顆柳丁20元,1顆桃子30元,請問老問需找多少個1元、5元、50元, 其銅板數目最少. 輸入說明: 先輸入媽媽給小明多少錢,N,接著輸入a1, a2, a3 ,在此N, a1, a2, a3為整數, 且a1*15+a2*20+ a3*30小於或等於N。 餵入的資料(Input): 500,1,2,3 預期的正確結果(Expected Output): 0,1,7 錯誤結果(Wrong Output): 自己測試了幾組,感覺都是對的,但試驗證過不了.... 程式碼(Code):(請善用置底文網頁, 記得排版) http://pastie.org/2191070 這是我的程式碼,不知道錯在哪裡 能否幫小弟看看?? 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.79.84

07/10 16:00, , 1F
沒看出甚麼錯誤,倒是是什麼驗證不過?
07/10 16:00, 1F

07/10 16:03, , 2F
是e-Tutor這個平台上的題目,他驗證只有結果錯誤
07/10 16:03, 2F

07/10 16:03, , 3F
但是沒有說他的測試資料是什麼
07/10 16:03, 3F

07/10 16:08, , 4F
會不會是因為沒有return
07/10 16:08, 4F

07/10 16:09, , 5F
return要加在哪?
07/10 16:09, 5F

07/10 16:10, , 6F
main(){
07/10 16:10, 6F

07/10 16:10, , 7F
07/10 16:10, 7F

07/10 16:10, , 8F
最後個}前
07/10 16:10, 8F

07/10 16:20, , 9F
我是看看
07/10 16:20, 9F

07/10 16:23, , 10F
用DP...
07/10 16:23, 10F

07/10 16:24, , 11F
那種零錢的總和其實用Greedy就OK了
07/10 16:24, 11F

07/10 16:31, , 12F
恩 是沒錯啦 請問有給範圍嗎?
07/10 16:31, 12F

07/10 16:33, , 13F
範圍???
07/10 16:33, 13F

07/10 16:37, , 14F
他題目沒說範圍@@?
07/10 16:37, 14F

07/10 16:39, , 15F
過了嗎?
07/10 16:39, 15F

07/10 16:46, , 16F
還是沒有= =+
07/10 16:46, 16F

07/10 16:56, , 17F
如果a1,a2,a3很大的話...
07/10 16:56, 17F

07/10 17:05, , 18F
大哥,你的意思是有可能是大數?
07/10 17:05, 18F

07/10 17:47, , 19F
有可能...
07/10 17:47, 19F

07/10 17:48, , 20F
不過再做大數之前 先測試long long吧
07/10 17:48, 20F

07/10 19:20, , 21F
while(sul!=0)//從最大開始換
07/10 19:20, 21F

07/10 19:22, , 22F
抱歉推錯, 請無視。
07/10 19:22, 22F

07/10 19:25, , 23F
if(sul<=0) // no change 的時候是只輸出一個 0 嗎 ?
07/10 19:25, 23F

07/10 19:35, , 24F
N, a1, a2, a3為整數 // 保證都大於 0 嗎?
07/10 19:35, 24F

07/10 19:47, , 25F
題目有給 N, a1, a2, a3 的範圍或哪一種型態的變數嗎?
07/10 19:47, 25F

07/10 19:49, , 26F
銅板數最少=> 50元硬幣給完最大可以給的數目之後, 再給
07/10 19:49, 26F

07/10 19:49, , 27F
5元的, 最後再給1元的. (這樣想應該沒錯吧?)
07/10 19:49, 27F

07/10 20:01, , 28F
回trop,若帶的錢不夠買水果,則顯示」0」。
07/10 20:01, 28F

07/10 20:01, , 29F
他沒說到 有沒有保證都大於0
07/10 20:01, 29F

07/10 20:02, , 30F
回eric 他沒說哪種型態 或是範圍
07/10 20:02, 30F

07/10 20:06, , 31F
a1*15+a2*20+ a3*30小於或等於N
07/10 20:06, 31F

07/10 20:27, , 32F
「若帶的錢不夠買水果,則顯示0」那你if那裡就不該有 =
07/10 20:27, 32F

07/10 20:27, , 33F
剛好夠買的話應該是輸出 0 0 0 , 而不是 0
07/10 20:27, 33F

07/10 20:44, , 34F
原來如此
07/10 20:44, 34F
文章代碼(AID): #1E6LezHH (C_and_CPP)
文章代碼(AID): #1E6LezHH (C_and_CPP)