当前位置 博文首页 > 美迪的麦柯的博客:Java发工资

    美迪的麦柯的博客:Java发工资

    作者:[db:作者] 时间:2021-08-06 19:00

    贪心算法
    行吧,我提交了好几遍,直接穷举得到最小张数,还自己看不出哪错了,呜。。。🤦?🤦?🤦?🤦?

    标题Problem C: 发工资

    Time Limit: 1 Sec Memory Limit: 128 MB

    Description

    作为X大的老师,最盼望的日子就是每月的16号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵
    但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?
    这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

    Input

    第一行是一个整数n(n<100),表示老师的人数,接下来有n行,每行表示一个老师的工资。

    Output

    对于每个老师的工资,输出至少需要准备的人民币张数。每个输出占一行。

    Sample Input Copy

    3
    1
    2
    3

    Sample Output Copy

    1
    1
    2

    可能的Java代码:

    import java.util.*;
    
    public class Main {
    
        public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        for(int i=0;i<n;i++)
        {
        int m=sc.nextInt();
        int sum=0;
        while(m>0)
        {
        sum=m/100;
        m%=100;
        sum+=m/50;
        m%=50;
        sum+=m/10;
        m%=10;
        sum+=m/5;
        m%=5;
        sum+=m/2;
        m%=2;
        sum+=m/1;
        m%=1;    
        }  
          
        System.out.println(sum);
        }
      
        }
    }
    

    或者这样:

    import java.util.*;
     
    public class Main { 
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
           int t=sc.nextInt();
           for(int i=0;i<t;i++)
            {
            int n=sc.nextInt();
            if(n>=0)
            {
            int sum=0;
            sum+=n/100;      
            n=n%100;
            sum+=n/50;
            n=n%50;
           //sum+=n/20;
            //n=n%20;
    		//行吧,一开始我瞎了,,一直以为会有二十的,原来没有的,呀,没有的没有的,没有的!!!
    		//🤦?🤦?🤦?(论看清题的重要性つ﹏?),难怪一直错了几回,怎么改都不对,皱眉皱眉。
    		
            sum+=n/10;
            n=n%10;
            sum+=n/5;
            n=n%5;
            sum+=n/2;
            n=n%2;
            sum+=n/1;
           n=n%1;   
           
            }
             System.out.println(sum);
            else
            {}
            }  
        }
    }
    

    运行结果:

     	Problem: XXXX
        User: XXXXXXXXXXX
        Language: Java
        Result: Accepted
        Time:118 ms
        Memory:10220 kb
    

    END

    cs
    下一篇:没有了