题目:L1-044 稳赢 (15 分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
代码如下:
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int count = 0;
String str = br.readLine();
while(str.charAt(0) != 'E') { //用首字母代替而不是用整个字符串来判断,否则会运行超时
if(count % n == 0 && count != 0) {
System.out.println(str);
count = 0;
}else {
if(str.charAt(0) == 'C') System.out.println("Bu");
else if(str.charAt(0) == 'B') System.out.println("JianDao");
else if(str.charAt(0) == 'J') System.out.println("ChuiZi");
count++;
}
str = br.readLine();
}
}
}
注:
如果import写成如下形式:
import java.io.BufferedReader;
import java.io.IOException; import
java.io.InputStreamReader;
则运行后有一个样例不能通过的可能性大一些,我也不知道为啥,试了好多遍发现的,本题可能考查的是读取输入的方式,因为俺试了另一个代码(只用了Scanner类没有用io流)就会一直有一个样例不能通过