思路:
输入钱数之后,从面额的从大到小,依次判断,如果符合,就计数,并把它取余,进行下面一个数额的判断。
代码:
// 3.15 20:00-20:25
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 101;
int a[maxn]; //存放老师工资
int judge(int n) {
int cnt = 0;
if (n >= 100) {
cnt += (n / 100);
n = n % 100;
}
if (n >= 50) {
cnt += (n / 50);
n = n % 50;
}
if (n >= 10) {
cnt += (n / 10);
n = n % 10;
}
if (n >= 5) {
cnt += (n / 5);
n = n % 5;
}
if (n >= 2) {
cnt += (n / 2);
n = n % 2;
}
cnt += n;
return cnt;
}
int main() {
int n;
while (scanf("%d", &n) != EOF && n != 0) {
memset(a, -1, sizeof(a)); // init
int sum = 0;
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
sum += judge(a[i]);
}
printf("%d\n", sum);
}
return 0;
}