#include <iostream>
#include <bits/stdc++.h>
#include <string> using namespace std; int main()
{
int n;
cin>>n;
stack <char> oper;//运算符
stack <int> number;//操作数
while(n--)
{
int end;
string temp;
cin>>temp;
for(int i=0; i<(int)temp.size(); i++)
{
if(temp.at(i)>='0'&&temp.at(i)<='9')
number.push(temp.at(i)-'0');
else if(temp.at(i)=='x'||temp.at(i)=='/')
{
while(!oper.empty())
{
char o=oper.top();
int numberend;
if(o=='x'||o=='/')
{
int number1,number2;
number2=number.top();
number.pop();
number1=number.top();
number.pop();
switch (o)
{
case 'x':
numberend=number1*number2;
break;
case '/':
numberend=number1/number2;
break;
}
number.push(numberend);
oper.pop();//chuzhan
}
else
break;
}
oper.push(temp.at(i));//ruzhan
}
else
{ while(!oper.empty())
{
char o=oper.top();
int numberend;
int number1,number2;
number2=number.top();
number.pop();
number1=number.top();
number.pop();
switch (o)
{
case '+':
numberend=number1+number2;
break;
case '-':
numberend=number1-number2;
break;
case 'x':
numberend=number1*number2;
break;
case '/':
numberend=number1/number2;
break; }
number.push(numberend);
oper.pop();
}
oper.push(temp.at(i));
}
}
while(!oper.empty())
{
char o=oper.top();
int numberend;
int number1,number2;
number2=number.top();
number.pop();
number1=number.top();
number.pop();
switch (o)
{
case '+':
numberend=number1+number2;
break;
case '-':
numberend=number1-number2;
break;
case 'x':
numberend=number1*number2;
break;
case '/':
numberend=number1/number2;
break;
}
number.push(numberend);
oper.pop();
}
//number.push(numberend); //oper.push(temp.at(i));
end=number.top();
if(end==24)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
}
/*
10
9+3+4x3
5+4x5x5
7-9-9+8
5x6/5x4
3+5+7+9
1x1+9-9
1x9-5/9
8/5+6x9
6x7-3x6
6x4+4/5
*/

最新文章

  1. xlwt写入中文操作不成功,提示UnicodeDecodeError: ascii codec can&#39;t decode byte ...
  2. C# ~ 数据库连接
  3. web api 处理发送过来的文件(图片)
  4. scp使用加密算法报错unknown cipher type
  5. Redis初步
  6. Java中ArrayList类详解
  7. block的用法和循环引用
  8. python3-day4(yield)
  9. libcprops
  10. JAVA类(上)
  11. .net core系列之初识asp.net core
  12. sys.exc_info()可以捕获到任意异常
  13. Spring Data JPA 初体验
  14. vue项目使用MD5进行密码加盐
  15. day13(函数嵌套定义,global,nonlocal关键字,闭包,装饰器)
  16. RxJS操作符(二)
  17. GoldenGate 12.3 MA架构介绍系列(1) - 安装
  18. 腾讯云Linux VPS新硬盘分区与挂载教程(面板重装不丢失数据)
  19. IT行业简报 2014-2-8
  20. 我的Git教程 之 初始化本地库

热门文章

  1. 1月3日内容总结——bbs项目登陆页面和主页、个人站点页的搭建
  2. 【RocketMQ】DLedger选主源码分析
  3. STM32F4寄存器初始化系列:GPIO
  4. 【USACO 2021 January Contest, Platinum】Problem 1. Sum of Distances
  5. 抗TNF治疗改变JIA患者PBMC基因表达谱,可预测疗效
  6. 【论文笔记】UNet
  7. cowtransfer(奶牛快传)自动上传文件脚本—流程分析
  8. Landsat数据在USGS中无法下载Surface Reflectance产品的解决方法
  9. Golang make和new的区别及实现原理详解
  10. No.2.7