程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ 995 硬幣找零

NYOJ 995 硬幣找零

編輯:C++入門知識

NYOJ 995 硬幣找零


硬幣找零

時間限制:1000 ms | 內存限制:65535 KB 難度:3
描述
在現實生活中,我們經常遇到硬幣找零的問題,例如,在發工資時,財務人員就需要計算最少的找零硬幣數,以便他們能從銀行拿回最少的硬幣數,並保證能用這些硬幣發工資。 我們應該注意到,人民幣的硬幣系統是 100,50,20,10,5,2,1,0.5,0.2,0.1,0.05, 0.02,0.01 元,采用這些硬幣我們可以對任何一個工資數用貪心算法求出其最少硬幣數。 但不幸的是: 我們可能沒有這樣一種好的硬幣系統, 因此用貪心算法不能求出最少的硬幣數,甚至有些金錢總數還不能用這些硬幣找零。例如,如果硬幣系統是 40,30,25 元,那麼 37元就不能用這些硬幣找零;95 元的最少找零硬幣數是 3。又如,硬幣系統是 10,7,5,1元,那麼 12 元用貪心法得到的硬幣數為 3,而最少硬幣數是 2。 你的任務就是:對於任意的硬幣系統和一個金錢數,請你編程求出最少的找零硬幣數; 如果不能用這些硬幣找零,請給出一種找零方法,使剩下的錢最少。
輸入
輸入數據:
第 1 行,為 N 和 T,其中 1≤N≤50 為硬幣系統中不同硬幣數;1≤T≤100000 為需要用硬幣找零的總數。
第 2 行為 N 個數值不大於 65535 的正整數,它們是硬幣系統中各硬幣的面值。
當n,t同時為0時結束。
輸出
輸出數據:
如 T 能被硬幣系統中的硬幣找零,請輸出最少的找零硬幣數。
如 T 不能被硬幣系統中的硬幣找零,請輸出剩下錢數最少的找零方案中的最少硬幣數。
樣例輸入
4 12
10 7 5 1
樣例輸出
2
思路:就是個01背包問題類似,只是求的是最小值
代碼:
# include 
# include 
# define min(a,b)a



復制去Google翻譯翻譯結果						

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved