稳赢
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
思路: 此题输入数据数未知,但明确的是输入End结束,故我们可以写一个循环,只要输入的不是End,便可一直输入。其次定义一个计数器,初值为0,每赢一次便自加,当胜利次数到达K时,则输出对方招数,即平局,并将计数器归零。
【注】 用Java写此题不能用equals比较字符串来判断对方所出招式,否则会导致一条数据超时。由于各招式首字母均不相同,所以我们只需判断首字母即可。
代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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();
}
}
}