#杭电oj 2021 java
发工资咯:)
作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子, 养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天, 财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,至少需要准备多少张人民币, 才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资是正整数,单位元,人民币一共有100元,50元,10元,5元,2元和1元六种。 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int n=sc.nextInt();//排头 n个整数 if(n==0) {//n = 0表示输入数据的结束,不做处理。 break; } int[] arr=new int[n];//存放输入的n个整数 int[] arr2= {100,50,10,5,2,1};//存放纸币面额,从大到小排放 int sum=0;//计算纸币张数 for(int i=0;i<arr.length;i++) { arr[i]=sc.nextInt();//存入n个数 } //对于arr里的每个数从第一个数开始 //依次与arr2里的面额进行比较 for(int i=0;i<arr.length;i++) { for(int j=0;j<arr2.length;j++) { //如果数大于面额,sum+数/面额,然后数=数%面额 if(arr[i]>arr2[j]) { sum+=arr[i]/arr2[j]; arr[i]=arr[i]%arr2[j]; }else if(arr[i]==arr2[j]) { //如果数=面额,sum++,然后数=数%面额,也就是0 sum++; arr[i]=arr[i]%arr2[j]; } } } System.out.println(sum); } } }