问题描述
要发工资了!!!
财务处的小胡老师最近在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?
这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。
Input
输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。
n=0表示输入的结束,不做处理
Output
对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。
Sample Input
3
1 2 3
0
Sample Output
4
通过代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int money[] = {100,50,10,5,2,1};
int main()
{
int n;
while(cin>>n)
{
int * a = new int [n];
if(n==0) break;
for(int i=0;i<n;i++)
cin>>a[i];
int sum = 0;
int x;
for(int i=0;i<n;i++)
{
x = a[i];
for(int j=0;j<6;j++)
sum +=x/money[j] , x%=money[j];
}
cout<<sum<<endl;
}
return 0;
}