PTA【稳赢】Java

稳赢

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔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();
		}
	}

}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_50816725/article/details/109056389