【ACM培训第六课】 内容:条件判断 学时:二天 形式:上机做题 |
xysDavidCN与LiJunLe的巅峰对决(1)
Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 173 Accepted Submission(s) : 67
Problem Description
华师传说中有一支叫做Omega的队伍。Omega队中的xysDavidCN和LiJunLe经常都会在ACM机房组队做比赛,通常都是被各路神牛虐到渣都不剩。不过他们还是觉得ACM比赛很有乐趣。
当然,整天泡机房肯定面临着一个很严重的问题——吃饭。由于ACM协会的机房在院楼的6楼(确切来说是7楼,由于某些原因,领导们把楼层的标记上移了一层)。所以xysDavidCN和LiJunLe都很不愿意下来吃饭。可是又不得不吃,结果每次xysDavidCN都会叫LiJunLe下去打包,LiJunLe也叫xysDavidCN去打包。
逼于无奈,他们两个只好出此下策——猜拳,谁输了就谁下去帮另一个人打包。
Input
输入包含多组数据,每组数据包含2个整数a和b (1 <= a, b <= 3),a表示xysDavidCN的状态,b表示LiJunLe的状态。状态表示:1表示剪刀,2表示石头,3表示布。
Output
对于每组数据,输出输的一方是谁。如果是xysDavidCN输了,就输出“xysDavidCN”(不包含双引号)。如果是LiJunLe输了,就输出“LiJunLe”(不包含双引号)。平手则输出“Again!”(不包含双引号)。
Sample Input
2 1
2 3
1 1
Sample Output
LiJunLe
xysDavidCN
Again!
Author
xysDavidCN
提示:
很好玩的一道题哈,不过有一些难度,好好加油哦~~
总结:
这一次的题目难倒了不少同学哈,也暴露出一些问题。能出现问题是好事儿,有则改之无则加勉,在以后的学习中多多注意。另外,大家要相互学习哈,取长补短,ICPC很多时候是英文的赛题,要有一定的积累哈。PS:ACM比赛并不考大家的英文水平,可以带词典。
暴露出的问题:
1、在条件判断语句中把“==”写成“=”,注意,一个是判断符,一个是赋值符。
2、main函数的返回值写成void。在标准C++中,main函数必须要有返回值,最后返回0。ACM比赛严格遵守这一准则,请大家在以后的做题中养成良好的习惯,多写几个字符哈~
3、出现多余的输出。在ICPC中,程序没有要求的输出(比如:“输入错误,请重新输入”类似的),一定不要出现在输出中。
参考代码:
C++版(来自少真)
#include<iostream> using namespace std; int main() { int a,b,c; while (cin>>a>>b) { c=a-b+3; switch (c) { case 4:cout<<"LiJunLe"<<endl;break; case 5:cout<<"xysDavidCN"<<endl;break; case 2:cout<<"xysDavidCN"<<endl;break; case 1:cout<<"LiJunLe"<<endl;break; case 3:cout<<"Again!"<<endl;break; } } return 0; }
C语言版(来自靖婷)
#include<stdio.h> int main() { int a,b; while (scanf("%d %d",&a,&b)!=EOF) { if(a>1||a<3||b>1||b<3) switch(a-b) { case 0:printf("%s ","Again!");break; case -1:printf("%s ","xysDavidCN");break; case -2:printf("%s ","LiJunLe");break; case 1:printf("%s ","LiJunLe");break; case 2:printf("%s ","xysDavidCN");break; } } return 0; }