CCF 201903-2 二十四点
2024-10-21 11:27:20
#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
*/
最新文章
- xlwt写入中文操作不成功,提示UnicodeDecodeError: ascii codec can&#39;t decode byte ...
- C# ~ 数据库连接
- web api 处理发送过来的文件(图片)
- scp使用加密算法报错unknown cipher type
- Redis初步
- Java中ArrayList类详解
- block的用法和循环引用
- python3-day4(yield)
- libcprops
- JAVA类(上)
- .net core系列之初识asp.net core
- sys.exc_info()可以捕获到任意异常
- Spring Data JPA 初体验
- vue项目使用MD5进行密码加盐
- day13(函数嵌套定义,global,nonlocal关键字,闭包,装饰器)
- RxJS操作符(二)
- GoldenGate 12.3 MA架构介绍系列(1) - 安装
- 腾讯云Linux VPS新硬盘分区与挂载教程(面板重装不丢失数据)
- IT行业简报 2014-2-8
- 我的Git教程 之 初始化本地库
热门文章
- 1月3日内容总结——bbs项目登陆页面和主页、个人站点页的搭建
- 【RocketMQ】DLedger选主源码分析
- STM32F4寄存器初始化系列:GPIO
- 【USACO 2021 January Contest, Platinum】Problem 1. Sum of Distances
- 抗TNF治疗改变JIA患者PBMC基因表达谱,可预测疗效
- 【论文笔记】UNet
- cowtransfer(奶牛快传)自动上传文件脚本—流程分析
- Landsat数据在USGS中无法下载Surface Reflectance产品的解决方法
- Golang make和new的区别及实现原理详解
- No.2.7