HDOJ2033:人见人爱A+B

Problem Description
HDOJ上面已经有10来道A+B的题目了,相信这些题目曾经是大家的最爱,希望今天的这个A+B能给大家带来好运,也希望这个题目能唤起大家对ACM曾经的热爱。
这个题目的A和B不是简单的整数,而是两个时间,A和B 都是由3个整数组成,分别表示时分秒,比如,假设A为34 45 56,就表示A所表示的时间是34小时 45分钟 56秒。
Input
输入数据有多行组成,首先是一个整数N,表示测试实例的个数,然后是N行数据,每行有6个整数AH,AM,AS,BH,BM,BS,分别表示时间A和B所对应的时分秒。题目保证所有的数据合法。
Output
对于每个测试实例,输出A+B,每个输出结果也是由时分秒3部分组成,同时也要满足时间的规则(即:分和秒的取值范围在0~59),每个输出占一行,并且所有的部分都可以用32位整数表示。
Sample Input
2
1 2 3 4 5 6
34 45 56 12 23 34
Sample Output
5 7 9
47 9 30
#include
int main()
{
	double ah, am, as, bh, bm, bs, ch, cm, cs;
	int n;
	scanf("%d", &n);
	while (n--)
	{
		scanf("%lf%lf%lf%lf%lf%lf", &ah, &am, &as, &bh, &bm, &bs);
		 ch = cm = cs = 0;
		 cs = as + bs;
		 if (cs >= 60)
		 {
			 cm++;
			 cs -= 60;
		 }
		 cm += am + bm;
		 if (cm >= 60)
		 {
			 ch++;
			 cm -= 60;
		 }
		 ch += ah + bh;
		 printf("%.0lf %.0lf %.0lfn", ch, cm, cs);
	}
}

可能是因为集训队的原因吧,提交到OJ上到现在还没出结果,不出意外应该是一次过了。水题嘛……

HDOJ2101:A + B Problem Too

高能预警!!!

Problem Description
This problem is also a A + B problem,but it has a little difference,you should determine does (a+b) could be divided with 86.For example ,if (A+B)=98,you should output no for result.
 

 

Input
Each line will contain two integers A and B. Process to end of file.
 

 

Output
For each case, if(A+B)%86=0,output yes in one line,else output no in one line.
 

 

Sample Input
1 1
8600 8600
 
Sample Output
no
yes

 


#include
main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
    if((a+b)%86==0)
        printf("yesn");
    else
        printf("non");
}
}//这道题要怎样才能WA

HDOJ2042:不容易系列之二

Problem Description
你活的不容易,我活的不容易,他活的也不容易。不过,如果你看了下面的故事,就会知道,有位老汉比你还不容易。

重庆市郊黄泥板村的徐老汉(大号徐东海,简称XDH)这两年辛辛苦苦养了不少羊,到了今年夏天,由于众所周知的高温干旱,实在没办法解决牲畜的饮水问题,就决定把这些羊都赶到集市去卖。从黄泥板村到交易地点要经过N个收费站,按说这收费站和徐老汉没什么关系,但是事实却令徐老汉欲哭无泪:

(镜头回放)

近景:老汉,一群羊
远景:公路,收费站

……

收费员(彬彬有礼+职业微笑):“老同志,请交过路费!”

徐老汉(愕然,反应迟钝状):“锅,锅,锅,锅-炉-费?我家不烧锅炉呀?”

收费员(职业微笑依然):“老同志,我说的是过-路-费,就是你的羊要过这个路口必须交费,understand?”

徐老汉(近镜头10秒,嘴巴张开):“我-我-我知道汽车过路要收费,这羊也要收费呀?”

收费员(居高临下+不解状):“老同志,你怎么就不明白呢,那么我问你,汽车几个轮子?”

徐老汉(稍放松):“这个我知道,今天在家里我孙子还问我这个问题,4个!”

收费员(生气,站起):“嘿!老头,你还骂人不带脏字,既然知道汽车四个轮子,难道就不知道这羊有几条腿吗?!”

徐老汉(尴尬,依然不解状):“也,也,也是4个呀,这有关系吗?”

收费员(生气,站起):“怎么没关系!我们头说了,只要是4条腿的都要收费!”

……

(画外音)

由于徐老汉没钱,收费员就将他的羊拿走一半,看到老汉泪水涟涟,犹豫了一下,又还给老汉一只。巧合的是,后面每过一个收费站,都是拿走当时羊的一半,然后退还一只,等到老汉到达市场,就只剩下3只羊了。

你,当代有良知的青年,能帮忙算一下老汉最初有多少只羊吗?

 
Input
输入数据第一行是一个整数N,下面由N行组成,每行包含一个整数a(0<a<=30),表示收费站的数量。
Output
对于每个测试实例,请输出最初的羊的数量,每个测试实例的输出占一行。
 
Sample Input
2
1
2
 
Sample Output
4
6

 

#include
int main()
{
 int n, ni, goat, st,sti;
 scanf("%d", &n);
 for (ni = 0; ni 

最近很烦,来A水题了……貌似徐东海是个悍匪,怎么变成任人宰割的徐老汉了咩……

HDOJ2029:Palindromes _easy version

Problem Description

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。

 

 

Input

输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串。

 

 

Output

如果一个字符串是回文串,则输出”yes”,否则输出”no”.

 

 

Sample Input

4

level

abcde

noon

haha

 

 

Sample Output

yes

no

yes

no

#include
#include
int main()
{
 char a[1000];
 int n,ni,len,i,ii,flag;
 scanf("%d",&n);
 getchar();
 for(ni=1;ni

没什么好说的,处理字符的时候要注意加一个getchar()。欢乐地一次过

HDOJ2030:汉字统计

Problem Description

统计给定文本文件中汉字的个数。

 

 

Input

输入文件首先包含一个整数n,表示测试实例的个数,然后是n段文本。

 

 

Output

对于每一段文本,输出其中的汉字的个数,每个测试实例的输出占一行。

 

[Hint:]从汉字机内码的特点考虑~

 

 

 

Sample Input

2

WaHaHa! WaHaHa! 今年过节不说话要说只说普通话WaHaHa! WaHaHa!

马上就要期末考试了Are you ready?

 

 

Sample Output

14

9

#include
#include
int main()
{
 int n,ni,m,sum;
 char a[1000];
 scanf("%d",&n);
 getchar();
 for(ni=1;ni

汉字机内码在计算机的表达方式的描述是,使用二个字节,每个字节最高位一位为1。 
计算机中, 补码第一位是符号位, 1 表示为 负数,
所以 汉字机内码的每个字节表示的十进制数都是负数
统计输入字符串含有几个汉字,只只需求出字符串中小于0的字符有几个,将它除以2就得到答案
 
一开始总是在输入n的时候就输出结果,后来加了一个getchar()就可以正常输入了。

LB-C语言作业5-13091811/812/813电子信息工程

求对角线的和

题目描述
输入4行4列矩阵数据,分别输出两条对角线的和。
输入描述
输入4行4列矩阵数据(整数)
输出描述
输出两条对角线的和
输入样例
1  2  3  4
6  1  8  9
1  1  1  1
5  6  7  5
输出样例
8  18

[code lang=”cpp”]#include
int main()
{
int num[4][4];
int i,j,m=0,n=0;
for(i=0;i&lt;4;i++)
for(j=0;j&lt;4;j++)
scanf("%d",&amp;num[i][j]);
for(i=0;i&lt;4;i++)
for(j=0;j&lt;4;j++)
{
if(i==j)
m+=num[i][j];
}
for(i=0;i&lt;4;i++)
for(j=0;j&lt;4;j++)
{
if(i+j==3)
n+=num[i][j];
}
printf("%d %d",m,n);
}<[/code]

 

 

判断”回文串”

题目描述
“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序输入一个字符串,判断是否“回文串”,如果是输出yes,否则输出no。(串长不超过100)
输入描述
输入一个长度不超过50的字符串。
输出描述
如果输入的字符串是回文串,则输出”yes”,否则输出”no”。
输入样例
样例输入1
level

样例输入2
abcde
输出样例
样例输出1
yes

样例输出2
no

[code lang=”c++”]#include
int main()
{
char cache[100];
int i,j,k=0;
gets(cache);
for(j=0;cache[j]!=”;j++);
for(i=0;i&lt;j;i++)
if(cache[i]==cache[j-1-i])
k++;
if(j==k)
printf("yesn");
else
printf("non");
return 0;
}[/code]

 

注意:OJ的测试样例里是没有样例输入、样例输出的!!

HDOJ2018母牛的故事

Problem Description
  有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
Input
  输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。

n=0表示输入数据的结束,不做处理。

Output
  对于每个测试实例,输出在第n年的时候母牛的数量。

每个输出占一行。

Sample Input
  2

4

5

0

Sample Output
  2

4

6


>#include
int sum[55]={1,2,3,4,6,9,13};
int main()
{
    int n,i;
    while(~scanf("%d",&n)&&n>0&&n
	

HDOJ2021发工资咯:)

发工资咯:)

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

Total Submission(s): 26889 Accepted Submission(s): 15199

Problem Description

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

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

这里假设老师的工资都是正整数= =,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。

Input

输入数据包含多个测试实例,每个测试实例的第一行是一个整数n(n<100),表示老师的人数,然后是n个老师的工资。

n=0表示输入的结束,不做处理。

Outpt

对于每个测试实例输出一个整数x,表示至少需要准备的人民币张数。每个输出占一行。

Sample Input

3

1 2 3

0

Sample Output

4

#include
int main()
{
 int n,money[100],i;
 int sum;
 while(scanf("%d",&n)!=EOF,n!=0)
 {
 sum=0;
 for(i=0;i=100)
 {
 money[i]-=100;
 sum++;
 }
 while(money[i]>=50)
 {
 money[i]-=50;
 sum++;
 }
 while(money[i]>=10)
 {
 money[i]-=10;
 sum++;
 }
 while(money[i]>=5)
 {
 money[i]-=5;
 sum++;
 }
 while(money[i]>=2)
 {
 money[i]-=2;
 sum++;
 }
 while(money[i]>=1)
 {
 money[i]-=1;
 sum++;
 }

 }
 printf("%dn",sum);
 }
}

 

题目不是很难,就是写出来的代码有点难看。可读性不高,大概知道那回事就可以了吧……还有就是要吐槽一下行健楼的机房,代码都打完了,VC++6.0都编译通过了,正要递交到HDOJ的时候,一激动,一不小心踢到了座位下面的线,然后屏幕就黑掉了…………

无奈的我又打了一遍啊……………………

HDOJ2019:数列有序!

数列有序!

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 40022    Accepted Submission(s): 17296

Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
Sample Input
3 3 1 2 4 0 0
Sample Output
1 2 3 4
#include
int main()
{
 int n,j,num,cache;
 while(~scanf("%d%d",&n,&num),n&&num!=0)
 {
 for(j=0;j

没有用数组的AC代码,考察break语句的使用;虽然这道题目用数组比较好解……还有就是注意格式

HDOJ2015:偶数求和——while语句的简便用法

偶数求和

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

Total Submission(s): 39778    Accepted Submission(s): 17314

Problem Description
有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。
Input
输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。
Output
对于每组输入数据,输出一个平均值序列,每组输出占一行。
Sample Input
3 2 4 2
Sample Output
3 6 3 7
Author
lcy
代码:
#include
int main()
{
    int m,n,i,num,x,sum;
    while(scanf(“%d%d”,&n,&m)!=EOF)
    {
        num=0;x=2;sum=0;
        while (n)
        {
            sum=sum+x;
            num++;
            if(n==1) {printf(“%dn”,sum/num);}
            else if(num==m) {printf(“%d “,sum/num);sum=0;num=0;}
            x+=2;
            n–;
        }
    }
    return 0;
}

题目不难,就是容易PE,关键还是审清题目,还有while()的简便写法。一次过~