#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int moneyvalue[6] = { 1,5,10,50,100,500 }; //代表硬币的面值
int moneycount[6]; //代表每种面值硬币的个数
int A; //代表要支付的钱数
int greedy(); //代表要进行贪心算法的函数
int greedy() {
int i;
int count; //代表每次硬币的枚数
int sum = 0; //代表进行支付时,所用硬币的最少枚数
for (i = 5; i >= 0 ; i--) {
count = min(A / moneyvalue[i], moneycount[i]); //代表使用面值尽量大的硬币时,该硬币所用的枚数
A -= count * moneyvalue[i]; //使用该硬币进行支付后,要支付的钱数也要对应相减
sum += count;
}
return sum;
}
int main() {
int i;
for (i = 0; i < 6; i++) {
scanf("%d",&moneycount[i]);
}
scanf("%d", &A);
cout << greedy() << endl;
}
原文:https://www.cnblogs.com/gao79135/p/14250793.html