青少年编程知识记录 codecoming

【题解】发工资

【题目描述】

财务处的小李最近就在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位员工发工资的时候都不用员工找零呢?

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

【输入描述】

输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示员工的人数,然后是n个员工的工资。

n=0表示输入的结束,不做处理。

【输出描述】

对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。

【样例输入】

3 1 2 3  0

【样例输出】

4





【参考答案】

#include<iostream>  #include<cmath>  #include<cstring>  using namespace std;  int c[6] = {100,50,10,5,2,1};  int main()  {      int n;      while(cin >> n && n > 0){          int res = 0;          for(int i = 0; i < n; i ++){              int x;              cin >> x;              for(int j = 0 ;j < 6; j ++){                  res += x / c[j];                  x %= c[j];              }          }          cout << res << endl;      }        return 0;  }



作者:亿万年的星光 分类:题解目录 浏览: