ETH官方钱包

切換
舊版
前往
大廳
主題

ZeroJudge - f004: 換錢 解題心得

Not In My Back Yard | 2020-05-16 00:21:43 | 巴幣 2 | 人氣 401

題目連結:


題目大意:
已知有 1 、 5 、 10 、 50 、 100 、 500 、 1000 元的幣值(有紙鈔以及硬幣)。

現在每列輸入給定一正整數 n (1 ≦ n ≦ 50000),請找出用最少的紙鈔或硬幣組成金額 n 的方法。



範例輸入:
552
1246
10000


範例輸出:
552 = 500*1 + 50*1 + 1*2
1246 = 1000*1 + 100*2 + 10*4 + 5*1 + 1*1
10000 = 1000*10


解題思維:
雖然是硬幣問題,如此題

但是這題的幣值可以使用貪心演算法(Greedy Algorithm)——先盡量使用面額較大的硬幣、紙鈔,然後才使用面額較小的。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作