hdu 2021 发工资咯:)(java)

问题:

break中断整个循环;continue中断本次循环;

在循环中如果想要一个数再循环一次,可以采用(i--)d的方式。

else if(b[i]>a[j])

{

b[i]=b[i]-a[j];

ans++;

j--;

}

发工资咯:)

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 38716    Accepted Submission(s): 21524

Problem Description

作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵

但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?

这里假设老师的工资都是正整数,单位元,人民币一共有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

代码:

菜:

import java.util.*;

public class Main{

	public static void main(String args[]){
		Scanner cin=new Scanner(System.in);
		int n;
		int a[]=new int[100];
		while(cin.hasNext()){
			n=cin.nextInt();
			if(n==0)
				break;
			else{
				for(int i=0;i<n;i++)
					a[i]=cin.nextInt();
				int m,sum=0;
				for(int i=0;i<n;i++){
					if(a[i]>=100)
					{
						sum+=a[i]/100;
						if(a[i]%100==0)
							continue;
						else
						{a[i]=a[i]%100;
						i--;
						}
					}
					else if(a[i]>=50)
					{
						sum+=a[i]/50;
						if(a[i]%50==0)
							continue;
						else
						{a[i]=a[i]%50;
						i--;

						}
					}
					else if(a[i]>=10)
					{
						sum+=a[i]/10;
						if(a[i]%10==0)
							continue;
						else
						{a[i]=a[i]%10;
						i--;
						}
					}
					else if(a[i]>=5)
					{
						sum+=a[i]/5;
						if(a[i]%5==0)
							continue;
						else
						{a[i]=a[i]%5;
						i--;
						}
					}
					else if(a[i]>=2)
					{
						sum+=a[i]/2;
						if(a[i]%100==0)
							continue;
						else
						{a[i]=a[i]%2;
						i--;
						}
					}
					else
						sum+=a[i]/1;
				}
				System.out.println(sum);
			}
		}
	}
}

大神:

import java.util.*;

public class Main1 {

	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);
		int n;
		int ans;
		int[] a={100,50,10,5,2,1};
		int[] b=new int[105];
		while(cin.hasNext())
		{
			ans=0;
			n=cin.nextInt();
			if(n==0)
				break;
			for(int i=0;i<n;i++)
				b[i]=cin.nextInt();
			for(int i=0;i<n;i++)
			{
				for(int j=0;j<6;j++)
				{
					if(b[i]==a[j])
					{
						ans++;
						break;
					}
					else if(b[i]>a[j])
					{
						b[i]=b[i]-a[j];
						ans++;
						j--;
					}
					else
						continue;
				}
			}
			System.out.println(ans);
		}
	}

}
时间: 2024-08-03 12:29:15

hdu 2021 发工资咯:)(java)的相关文章

hdu 2021 发工资咯:)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2021 题目大意:给老师发工资,找出最少的人民币张数. 1 #include <stdio.h> 2 int main () 3 { 4 int a,n,i,sum; 5 while (scanf("%d",&n),n) 6 { 7 sum=0; 8 for (i=1; i<=n; i++) 9 { 10 scanf ("%d",&a);

acm 2021 发工资咯

1 import java.util.Scanner; 2 3 /** 4 * Created by Administrator on 2016/4/4. 5 */ 6 7 8 public class Main { 9 public static void main(String []args) { 10 Scanner in = new Scanner(System.in); 11 for (; ; ) { 12 int c = in.nextInt(); 13 if (c == 0) {

2021.发工资咯:)

#include<cstdio> #include<iostream> using namespace std; int main(){          int n;          while(scanf("%d",&n),n){                    int d,ans=0;                    for(int i=0;i<n;i++){                             scanf(

(简单贪心) 发工资咯:) hdu2021

发工资咯:) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 86458    Accepted Submission(s): 45902 Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的

发工资咯:)

Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?这里假设老师的工资都是正整数,单位元,人民币一共有100元.50元.10元.5元.2元和1元六种. Input 输入数据包含多个测试实例,每个测试实例的第一行是一个整数n

杭电2021发工资题

本菜鸡听dalao说这是简单的贪心算法:加油吧菜鸡 #include<iostream>using namespace std;int main(){ int n, m, ans; while (cin >> n&&n) { ans = 0; for (int i = 0; i < n; i++) { cin >> m; ans += (m / 100 + m % 100 / 50 + m % 100 % 50 / 10 + m % 100 % 5

杭电ACM2022--发工资咯:)

发工资咯:) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 86355    Accepted Submission(s): 45846 Problem Description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的

贪心算法(发工资)

发工资咯:) Problem : 430 Time Limit : 1000ms Memory Limit : 65536K description 作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100

hdu 2018(母牛问题)2019(数列有序!)2020(绝对值排序 )2021(发工资)2022(海选女主角)

要发现它的规律,题n年牛的总数等于n-1年的母牛数加上第n年新增的母牛数,第n年只有n-3年的那些母牛才能产母牛,所以第n年的母牛数等于第n-1和n-3年的母牛数的和,即sum(n)=sum(n-1)+sum(n-3),可用递归来做 1 #include<cstdio> 2 #include<cmath> 3 #include<string.h> 4 #include<iostream> 5 #include<algorithm> 6 using