//可以ac
#include<bits/stdc++.h>
using namespace std;
stack<int>nums;
stack<char>sign;
int n;
int main()
{
int count=0;
char ch[10];
string res[1010];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>ch;
int j=0;
while(!nums.empty())
{
nums.pop();
}
while(!sign.empty())
{
sign.pop();
}
while(j<strlen(ch))
{
if(ch[j]>'0'&&ch[j]<='9')
{
nums.push(ch[j]-'0');
}
else{
if(ch[j]=='+')
{
sign.push(ch[j]);
}
else if(ch[j]=='-')
{
sign.push('+');
nums.push((ch[j+1]-'0')*(-1));
j++;
}
else if(ch[j]=='x')
{
int tmp1=nums.top();
nums.pop();
int test=tmp1*(ch[j+1]-'0');
nums.push(test);
j++;
}
else if(ch[j]=='/')
{
int tmp1=nums.top();
nums.pop();
int test=tmp1/(ch[j+1]-'0');
nums.push(test);
j++;
}
}
j++;
}
while(!sign.empty())
{
int tmp1=nums.top();
nums.pop();
int tmp2=nums.top();
nums.pop();
int tmp3=tmp1+tmp2;
nums.push(tmp3);
sign.pop();
}
int temp=nums.top();
if(temp==24)
{
res[count++]="Yes";
}
else{
res[count++]="No";
}
}
for(int i=0;i<count;i++)
{
cout<<res[i]<<endl;
}
}
试题编号: | 201903-2 |
试题名称: | 二十四点 |
时间限制: | 1.0s |
内存限制: | 512.0MB |
问题描述: |
|