ccf吧 关注:1,552贴子:5,405
  • 0回复贴,共1
24点游戏
import java.util.*;
public class Demo2 {
public static int add(String str) {
Stack<Integer> num=new Stack<Integer>();
Stack<Integer> num1=new Stack<Integer>();
Stack<Character> cha=new Stack<Character>();
char [] s=str.toCharArray();
num.push(s[0]-'0');
for(int i=1;i<str.length();i++) {
if(s[i]=='x') {
num.pop();
int temp=(s[i-1]-'0')*(s[i+1]-'0');
num.push(temp);
i++;
}
else if(s[i]=='/') {
num.pop();
int temp=(s[i-1]-'0')/(s[i+1]-'0');
num.push(temp);
i++;
}
else if(s[i]=='+'||s[i]=='-') {
cha.push(s[i]);
}
else {
num.push(s[i]-'0');
}
}
while(num.size()>0) {
num1.push(num.pop());
}

int sum=num1.pop();
while(cha.size()>0) {
if(cha.pop()=='+') {
int k=num1.pop();
sum+=k;
}
else if(cha.pop()=='-'){
sum-=num1.pop();
}

}
return sum;
}




public static void main(String args[]) {
int n;
Scanner input=new Scanner(System.in);
n=input.nextInt();
String [] sr=new String[n];
String [] result=new String[n];
for(int i=0;i<n;i++) {
sr[i]=input.next();
}
for(int j=0;j<n;j++) {
if(add(sr[j])==24) {
result[j]="Yes";
}
else {
result[j]="No";
}
}
for(int k=0;k<n;k++) {
System.out.println(result[k]);
}
}
}
为什么不对,不对,对。。。。。。。


回复
1楼2019-09-08 10:41