close

題目連結:  https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=2308

題目大意:  總共錢,2個種類,4種硬幣,求找給你最少硬幣數。

思路:  貪心,從大的硬幣開始扣,扣完更新剩餘錢,剩餘錢必定等於0,因為幣值有1。接著輸出答案即可。

代碼: 

#include <bits/stdc++.h>
using namespace std;

int main()
{
    const int coin[] = {1, 5, 10, 50};
    int k, n, m, c;
    while(scanf("%d,%d,%d", &k, &n, &m) != -1){
        c = (n==1) ? 17 : 25;
        c *= m;
        int rem = k-c;
        int bag[4] = {};
        for(int i = 3; i >= 0; --i){
            if(rem >= coin[i]){
                bag[i] += (rem/coin[i]);
                rem %= coin[i];
            }
        }
        bool f = 0;
        for(int i = 0; i < 4; i++){
            if(bag[i] > 0){
                if(f) putchar(',');
                printf("Coin %d:%d", coin[i], bag[i]);
                f = 1;
            }
        }
        puts("");
    }
    return 0;
}
/*
20,1,1
50,2,1
*/

arrow
arrow
    創作者介紹
    創作者 尾玉 的頭像
    尾玉

    louisfghbvc的部落格

    尾玉 發表在 痞客邦 留言(0) 人氣()