思路:将所有数据处理为等待累加的数
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main(){
int n,i;
int a[7];//暂存累加数据
string s;
cin>>n;
for(i=0;i<n;i++){
cin>>s;
int k=0,sum=0;
memset(a,0,sizeof(a));
for(int j=0;j<7;j++){
if(s[j]>'0'&&s[j]<='9'){
a[k++]=s[j]-'0';
}
else if(s[j]=='+')
continue;
else if(s[j]=='-')//减法变成加上相反数
a[k++]=-(s[++j]-'0');
else if(s[j]=='x'){//乘法、除法先计算出了结果
int t=s[++j]-'0';
k--;
a[k]=a[k]*t;
k++;
}
else{
int t=s[++j]-'0';
k--;
a[k]=a[k]/t;
k++;
}
}
for(int j=0;j<4;j++)
sum+=a[j];
if(sum==24)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}