杭电OJ | 2021 发工资 2022 海选女主角

2021

Problem Description

如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢?
这里假设老师的工资都是正整数,单位元,人民币一共有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

原本加了层do while(remain!=0),后来发现无论输入什么数都只遍历一遍,这可能就是设计纸币面值时考虑的原因吧

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int list[100];
    int inputnum;
	while((scanf("%d",&inputnum)!=EOF)&&(inputnum!=0)){
		int i,wage,remain;
		int sum = 0;
		for(i=0; i<inputnum; i++){
			scanf("%d",&wage);
			if(wage>=100){
			sum = sum+wage/100;
				remain = wage%100;
				wage = remain;
			}
			if(wage>=50){
				sum = sum+wage/50;
				remain = wage%50;
				wage = remain;
			}
			if(wage>=10){
				sum = sum+wage/10;
				remain = wage%10;
				wage = remain;
			}
			if(wage>=5){
				sum = sum+wage/5;
				remain = wage%5;
				wage = remain;
			}
			if(wage>=2){
				sum = sum+wage/2;
				remain = wage%2;
				wage = remain;
			}
			if(wage>=1){
				sum = sum+wage/1;
				remain = wage%1;
				wage = remain;
			}
		}
		printf("%d\n",sum);
	}
    return 0;
} 

2022

Problem Description      选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。

Input       输入数据有多组,每组的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。

Output    对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。
note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。

Sample Input

2 3

1 4 -3

-7 3 0

Sample Output

2 1 -7

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int m,n;
	while(scanf("%d %d",&m,&n)!=EOF){
		int i,j,indexi,indexj,list[100][100];
		int max = 0;
		for(i=0; i<m; i++){
			for(j=0; j<n; j++){
				scanf("%d",&list[i][j]);
 				if(abs(list[i][j])>abs(max)){
					max = list[i][j];
					indexi = i+1;
					indexj = j+1;
				}
			}
		}
		printf("%d %d %d\n", indexi,indexj,max);
	}
    return 0;
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值