#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
stack<int> num;
char s[8];
int sn[8];//Ö±½Ó´æÊý×Ö
while(n--){
for(int i=0;i<7;i++){
cin>>s[i];
if(s[i]-'0'>=0&&s[i]-'0'<=9){
sn[i]=s[i]-'0';
}
}
for(int i=0;i<7;i++){
if(s[i]-'0'>=0&&s[i]-'0'<=9)num.push(sn[i]);
else {
if(s[i]=='+')continue;
if(s[i]=='-'){
sn[i+1]=sn[i+1]*-1;//原地修改符号
}
if(s[i]=='x'){
sn[i+1]=sn[i+1]*num.top();//直接在下一个数字的值上做修改 反正遍历到该数字时是要入栈的 最终也是在栈上计算
num.pop();
}
if(s[i]=='/'){
sn[i+1]=num.top()/sn[i+1];
num.pop();
}
}
}
int sum=0;
while(!num.empty()){
sum+=num.top();
num.pop();
}
if(sum==24)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
CCF CSP试题编号: 201903-2试题名称: 二十四点
最新推荐文章于 2024-07-08 22:12:26 发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)