问题描述:对于财务处的工作人员来说,发工资那天是最忙碌的。财务处的NowCoder最近在考虑一个问题:如果每个员工的工资额都知道,最少需要准备多少张人民币,才能在给每位同事发工资的时候都不用找零呢?
这里假设员工的工资都是正整数,单位元,人民币一共有100元、50元、20元、10元、5元、2元和1元七种。
输入格式:
输入数据包含多个测试实例,每个测试实例的第一行是一个整数n (n≤100),表示人数,然后是n个员工的工资
输出格式:
对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数,每个输出占一行
样例输入:
3
1 2 3
样例输出:
4
实现代码:
//这题很简单,就不进行注释了
import java.util.*;
public class fgz {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int []wage=new int[n];
for(int i=0;i<n;i++) {
wage[i]=input.nextInt();
}
int total=PayWage(wage);
System.out.println(total);
}
public static int PayWage(int[]wage) {
int total=0;
for(int i=0;i<wage.length;i++) {
while(wage[i]!=0) {
if(wage[i]>=100) {
wage[i]=wage[i]-100;
total++;
}
if(wage[i]>=50 && wage[i]<100) {
wage[i]=wage[i]-50;
total++;
}
if(wage[i]>=20 && wage[i]<50) {
wage[i]=wage[i]-20;
total++;
}
if(wage[i]>=10 && wage[i]<20) {
wage[i]=wage[i]-10;
total++;
}
if(wage[i]>=5 && wage[i]<10) {
wage[i]=wage[i]-5;
total++;
}
if(wage[i]>=2 && wage[i]<5) {
wage[i]=wage[i]-2;
total++;
}
if(wage[i]>=1 && wage[i]<2) {
wage[i]=wage[i]-1;
total++;
}
}
}
return total;
}
}