CCF 201903-2 二十四点
#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
*/
CCF 201903-2 二十四点的更多相关文章
- 第十六次 ccf 201903-2 二十四点
题意: 计算数学表达式的值, 数学表达式的定义: 4个[0-9]表示数字的字符 ,3个[+-x/]表示运算的字符 可以用正则为: ([0-9][+-x/]){3}[0-9] 例如: 5+2/1x3 2 ...
- 201903-2 CCF 二十四点
题面: 考场写的30分== #include<bits/stdc++.h> using namespace std; stack<int>st; stack<char&g ...
- [LeetCode] 24 Game 二十四点游戏
You have 4 cards each containing a number from 1 to 9. You need to judge whether they could operated ...
- 二十四点算法 java实现
问题: 给出四个数,不可以重复使用,可以用+ - * /和括号,怎么得出24? 代码: //return -1 表示当前方法不行 private int workByStep(int op,int n ...
- HNU 12886 Cracking the Safe 二十四点的判断
经典的一个题,今天竟然写跪了…… 题意: 给你4个数字,让你判断是否能通过四则运算和括号,凑成24点. 思路: 暴力枚举运算顺序和运算符. 代码: #include <iostream> ...
- CCF-CSP题解 201903-2 二十四点
可枚举. 写栈的主要思想是:一个数栈\(numSta\),一个运算符栈\(opSta\).遇到一个运算符,就把之前优先级\(equal\ or\ greater\ than\)它的运算符处理掉. #i ...
- CSP201903-2二十四点
如图所示先处理乘号和除号,再处理加减. #include<bits/stdc++.h> using namespace std; ];int main(){ int n; cin>& ...
- 201903-2 二十四点 Java
思路: 数据结构中,栈可以解决运算的问题.利用压栈和弹栈操作实现(这里用队列模拟).具体的: 遇到乘除号,弹出栈顶元素,将计算结果压入栈中.遇到加减号,将后面的数一起压入栈中. 注意: substri ...
- CCF201903-2二十四点
思路描述:最开始的思路是拿一个栈来存储数据和符号,在动手实践的过程中发现行不通,单个数字的char和int转换可以,但是加起来的数据两位数字就很难处理了. 然后就去看了看别人的思路,给了我一个很好的启 ...
- NLP(二十六)限定领域的三元组抽取的一次尝试
本文将会介绍笔者在2019语言与智能技术竞赛的三元组抽取比赛方面的一次尝试.由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集.但是,这并不耽误我们在这 ...
随机推荐
- Linux备份服务
备份服务 一.备份服务概述 备份服务:需要使用脚本,打包备份,定时任务 通过rsyncd服务,不同主机之间进行数据传输 rsyncd特点: rsync是个服务,也是命令 使用方便,有多种模式 传输数据 ...
- KingbaseES在线wal日志
KingbaseES数据库日志文件记录数据库的历史操作信息, 包含恢复数据库中的所有事务所需的信息. KingbaseES在线WAL日志: WAL日志: 预写式日志(Write-Ahead Loggi ...
- 【笔记向】RESTful api
RESTful api 是什么 源自论文:点我,中文版 Representational state transfer: Representational:数据表现形式 state:状态 transf ...
- SpringBoot+Vue前后端分离项目,在过滤器取值为Null
SpringBoot+Vue前后端分离项目,在过滤器取值为Null 是因为SessionID的问题,因为axios每次的请求都是一次新的sessionId,所以只需要在main.js下配置如下 axi ...
- 编写antd的Cascader 级联选择组件市级地区数据
下面是该组件的使用数据的格式 options: [ { value: 'zhejiang', label: 'Zhejiang', children: [ { value: 'hangzhou', l ...
- Docker部署Nacos自动停止运行
1.现象 使用docker部署的Nacos在运行一段时间后,就自动停止运行了. 查看docker运行容器,nacos停止了 2.解决 因为是学生购买的轻量级服务器,所以配置很低,出现这种问题我默认是内 ...
- 【JS入门小游戏】01-骰子游戏
01-骰子游戏 游戏出自Udemy的JS课程中提到的一个游戏,课程主要是对JS部分进行详细的从0开始的讲解,本篇文章是对整个游戏的分析,包括HTMK,CSS和JS,也主要对JS进行刨析. 游戏链接:h ...
- JZOJ 6801. NOIP2020.9.19模拟patrick
题目大意 动态维护数列中大于等于某个数的极长连续段的个数. 思路 我们考虑每段的开头,记为 \(i\),高度为 \(a_i\) 那么此时水淹的高度必然满足 \(a_{i-1} < x \leq ...
- OS-HACKNOS-2.1
HACKNOS: RECONFORCE (V1.1) 目录 HACKNOS: RECONFORCE (V1.1) 1 信息收集 1.1 端口扫描 1.2 ftp分析 1.3 后台目录扫描 1.2.1 ...
- vue---:click、:class可以这样表示
1.:class (1)是否选用class :class="{'active':item.id == id}" (2)根据条件,当前数据dealerId中是否包含当前id,有用cl ...