/*
100 4 Win 100! Total = 200.
8 0 100 2 Lose 50. Total = 150.
3 1 50 1 Not enough tokens. Total = 150.
5 1 200 6 Not enough tokens. Total = 150.
7 0 200 8
*/
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int t=scan.nextInt(),K= scan.nextInt();
for(int i=0;i<K;i++){
int n1=scan.nextInt(),choice=scan.nextInt(),bet= scan.nextInt(),n2=scan.nextInt();
if(bet>t){
System.out.println("Not enough tokens. Total = "+t+".");
}
else{
if(choice==0){
if(n1>n2){
t=t+bet;
System.out.println("Win "+bet+"! Total = "+t+".");
}
else{
t=t-bet;
System.out.println("Lose "+bet+". Total = "+t+".");
if(t==0){
System.out.println("Game over.");
break;
}
}
}
else{
if(n1<n2){
t=t+bet;
System.out.println("Win "+bet+"! Total = "+t+".");
}
else{
t=t-bet;
System.out.println("Lose "+bet+". Total = "+t+".");
if(t==0){
System.out.println("Game over.");
break;
}
}
}
}
}
}
}
感觉按部就班的写应该没啥问题,但是做出来爆了三个测试点,具体哪里有问题?
好像人家Game Over.是大写的,而你是小写的Game over.
另:
逻辑太复杂了,不利于复用和调试
4重if判断可以合并
if((choice==0) == (n1>n2)){
}
表达式为真时表示猜对了,为假是表示猜错了,这样逻辑会简单很多