暴力枚举做法(建议用栈来实现)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int shu[101],c[101],i,s,n;
char ch[101];
cin>>n;
for(i=1;i<=n;i++)
{
cin>>shu[0];
cin>>ch[0];
cin>>shu[1];
cin>>ch[1];
cin>>shu[2];
cin>>ch[2];
cin>>shu[3];
if(ch[0]=='+')
{
if(ch[1]=='+')
{
if(ch[2]=='+')
s=shu[0]+shu[1]+shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]+shu[1]+shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]+shu[1]+shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]+shu[1]+shu[2]/shu[3];
}
if(ch[1]=='-')
{
if(ch[2]=='+')
s=shu[0]+shu[1]-shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]+shu[1]-shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]+shu[1]-shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]+shu[1]-shu[2]/shu[3];
}
if(ch[1]=='x')
{
if(ch[2]=='+')
s=shu[0]+shu[1]*shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]+shu[1]*shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]+shu[1]*shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]+shu[1]*shu[2]/shu[3];
}
if(ch[1]=='/')
{
if(ch[2]=='+')
s=shu[0]+shu[1]/shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]+shu[1]/shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]+shu[1]/shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]+shu[1]/shu[2]/shu[3];
}
}
if(ch[0]=='-')
{
if(ch[1]=='+')
{
if(ch[2]=='+')
s=shu[0]-shu[1]+shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]-shu[1]+shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]-shu[1]+shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]-shu[1]+shu[2]/shu[3];
}
if(ch[1]=='-')
{
if(ch[2]=='+')
s=shu[0]-shu[1]-shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]-shu[1]-shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]-shu[1]-shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]-shu[1]-shu[2]/shu[3];
}
if(ch[1]=='x')
{
if(ch[2]=='+')
s=shu[0]-shu[1]*shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]-shu[1]*shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]-shu[1]*shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]-shu[1]*shu[2]/shu[3];
}
if(ch[1]=='/')
{
if(ch[2]=='+')
s=shu[0]-shu[1]/shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]-shu[1]/shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]-shu[1]/shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]-shu[1]/shu[2]/shu[3];
}
}
if(ch[0]=='x')
{
if(ch[1]=='+')
{
if(ch[2]=='+')
s=shu[0]*shu[1]+shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]*shu[1]+shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]*shu[1]+shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]*shu[1]+shu[2]/shu[3];
}
if(ch[1]=='-')
{
if(ch[2]=='+')
s=shu[0]*shu[1]-shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]*shu[1]-shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]*shu[1]-shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]*shu[1]-shu[2]/shu[3];
}
if(ch[1]=='x')
{
if(ch[2]=='+')
s=shu[0]*shu[1]*shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]*shu[1]*shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]*shu[1]*shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]*shu[1]*shu[2]/shu[3];
}
if(ch[1]=='/')
{
if(ch[2]=='+')
s=shu[0]*shu[1]/shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]*shu[1]/shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]*shu[1]/shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]*shu[1]/shu[2]/shu[3];
}
}
if(ch[0]=='/')
{
if(ch[1]=='+')
{
if(ch[2]=='+')
s=shu[0]/shu[1]+shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]/shu[1]+shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]/shu[1]+shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]/shu[1]+shu[2]/shu[3];
}
if(ch[1]=='-')
{
if(ch[2]=='+')
s=shu[0]/shu[1]-shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]/shu[1]-shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]/shu[1]-shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]/shu[1]-shu[2]/shu[3];
}
if(ch[1]=='x')
{
if(ch[2]=='+')
s=shu[0]/shu[1]*shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]/shu[1]*shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]/shu[1]*shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]/shu[1]*shu[2]/shu[3];
}
if(ch[1]=='/')
{
if(ch[2]=='+')
s=shu[0]/shu[1]/shu[2]+shu[3];
else if(ch[2]=='-')
s=shu[0]/shu[1]/shu[2]-shu[3];
else if(ch[2]=='x')
s=shu[0]/shu[1]/shu[2]*shu[3];
else if(ch[2]=='/')
s=shu[0]/shu[1]/shu[2]/shu[3];
}
}
if(s==24)
cout <<"Yes"<< endl;
else
cout<<"No"<<endl;
}
return 0;
}