作为 A 公司的职员,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了。

但是对于公司财务处的工作人员来说,这一天则是很忙碌的一天。财务处的小胡最近考虑了一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位职员发工资的时候都不用找零呢?

这里假设员工的工资都是正整数,单位元,人民币一共有六种面额:100元、50元、10元、5元、2元和1元

输入格式

输入包含多组测试数据。

每组数据的第一行包含整数 n,表示员工数量。

第二行包含 n 个整数,表示每个员工的应发工资。

输出格式

对于每组数据,输出一行结果,表示最少需要准备的人民币张数。

数据范围

  • 1 ≤ n ≤ 100
  • 工资范围 [1, 5000]
  • 输入最多包含 100 组数据。

输入样例

3
1 2 3
2
1 2

输出样例

4
2

题目分析

简单模拟

代码实现

#include <iostream>
using namespace std;
const int N = 1e2 + 10, M = 6;

int n, tar, dir[M] = {100,50,10,5,2,1};
void solve() {
    int cnt = 0;
    while(n--) {
        cin >> tar;
        for (int i = 0; i < M; ++i) {
            if (tar >= dir[i]) {
                cnt += tar / dir[i];
                tar
            }
        }
    }
    cout << cnt << '\n';
}
int main () {
    ios::sync_with_stdio(0);
    cin.tie(0);
    while(cin >> n) solve();
    return 0;
} 
分类: Thought

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用*标注

友情链接:Ctips' blog, Colza’s blog

站点状态:Status