* 模拟 条件判断*
问题描述 我们用0表示林丹,1表示李宗伟。
输入数据中每行会给出一个0或者1,表示对应选手得1分。
当一方得分达到21分时,只要该方与对方分差超过1分,该方即胜出。
你需要输出最后获胜选手的代号。 输入格式 若干行每行一个0或者1。 输出格式 一行一个0或者1表示胜者。 样例输入 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 样例输出 1 数据规模和约定
输入数据可能存在多余信息,选手需要在第一次出现胜者时马上输出。 读入可以使用while (cin >>
x){},该代码块会在读入所有数据后执行完毕
import java.util.Scanner;
public class 林丹羽毛球 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum0=0,sum1=0;
Scanner in=new Scanner(System.in);
int n=in.nextInt();
while(in.hasNextLine()){
if(n==0)
sum0++;
else sum1++;
if(sum0>=21&&sum0-sum1>1){
System.out.println("0");
return;
}
if(sum1>=21&&sum1-sum0>1){
System.out.println("1");
return;
}
n=in.nextInt();//这个不加是错的why?存储当前输入,以上部分是判断上行输入
}
}
}
错因分析:判断条件易出错,要懂得他们两人得分数差值需达到一分以上,而不是一分。而此时sum0>=21或者sum1>=21
if(sum0>=21&&sum0-sum1>1){
System.out.println("0");
return;
}
if(sum1>=21&&sum1-sum0>1){
System.out.println("1");
return;
}