发工资咯:)
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
#include<iostream>
using namespace std;int main(){int n;int coins[] = {100,50,10,5,2,1};while(cin>>n){if(n==0) break;int *arry = new int[n];for(int i=0;i<n;i++)cin>>arry[i];int sum= 0;for(int i=0;i<n;i++){while(arry[i]>0){for(int j=0;j<6;j++){if(arry[i]>=coins[j]){arry[i] = arry[i]-coins[j];sum++;break;}}}}cout<<sum<<endl;}
}
海选女主角
Problem Description
potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业余时间挣点外快以养家糊口。
“做什么比较挣钱呢?筛沙子没力气,看大门又不够帅...”potato老师很是无奈。
“张艺谋比你还难看,现在多有钱呀,听说还要导演奥运开幕式呢!你为什么不去娱乐圈发展呢?”lwg在一旁出主意。
嗯,也是,为了生存,就委屈点到娱乐圈混混吧,马上就拍一部激光电影《杭电记忆——回来我的爱》。
说干就干,马上海选女主角(和老谋子学的,此举可以吸引媒体的眼球,呵呵),并且特别规定,演员必须具有ac的基本功,否则直接out!
由于策划师风之鱼(大师级水王)宣传到位,来应聘的MM很多,当然包括nit的蛋糕妹妹等呼声很高的美女,就连zjut的jqw都男扮女装来应聘(还好被安全顾问hdu_Bin-Laden认出,给轰走了),看来娱乐圈比acm还吸引人哪...
面试那天,刚好来了m*n个MM,站成一个m*n的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。
一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给-2147483648分了。
分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。
特别说明:如果不幸选中一个负分的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<iostream>
#include<cmath>
using namespace std;int main(){int row,col;while(cin>>row>>col){//初始化二维数组int **arry = new int* [row+1];for(int i = 1; i <= row; i++)arry[i] = new int[col+1];//输入二维数组for(int i=1;i<=row;i++)for(int j=1;j<=col;j++)cin>>arry[i][j];//r,c分别记录行列号int r=1,c=1,a_max=abs(arry[1][1]);for(int i=1;i<=row;i++)for(int j=1;j<=col;j++){if(abs(arry[i][j])>a_max){a_max = abs(arry[i][j]);r = i;c = j;}}cout<<r<<" "<<c<<" "<<arry[r][c]<<endl;}
}
求平均成绩
Problem Description
假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。
Input
输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。
Output
对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
每个测试实例后面跟一个空行。
Sample Input
2 2
5 10
10 20
Sample Output
7.50 15.00
7.50 15.00
1
#include<iostream>
#include<iomanip>
using namespace std;int main(){int row,col;while(cin>>row>>col){int **arry = new int*[row];for(int i=0;i<row;i++)arry[i]=new int[col];for(int i=0;i<row;i++)for(int j=0;j<col;j++)cin>>arry[i][j];//记录学生平均成绩,学科平均成绩double *p1,*p2;p1 = new double [row];p2 = new double [col];for(int i=0;i<row;i++){double sum=0;for(int j=0;j<col;j++)sum += arry[i][j];p1[i] = sum/col;}for(int j=0;j<col;j++){double sum=0;for(int i=0;i<row;i++)sum += arry[i][j];p2[j] = sum/row;}int con=0;for(int i=0;i<row;i++){int flag=0;for(int j=0;j<col;j++)if(arry[i][j]>=p2[j])++flag;if(flag==col)++con;}//输出学生平均成绩for(int i=0;i<row-1;i++)cout<<setiosflags(ios::fixed)<<setprecision(2)<<p1[i]<<" ";cout<<setiosflags(ios::fixed)<<setprecision(2)<<p1[row-1]<<endl;//输出学科平均成绩for(int j=0;j<col-1;j++)cout<<setiosflags(ios::fixed)<<setprecision(2)<<p2[j]<<" ";cout<<setiosflags(ios::fixed)<<setprecision(2)<<p2[col-1]<<endl;cout<<con<<endl;cout<<endl;}
}