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语言与智能技术竞赛的三元组抽取比赛方面的一次尝试.由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集.但是,这并不耽误我们在这 ...
随机推荐
- 浅谈JS词法环境
JavaScript 词法环境 本文主要讲解JS词法环境,我们将看到什么是词法环境,词法范围如何工作,函数内部的名称如何解析,内部属性,弄清楚词法环境利于我们理解闭包.让我们开始吧... 什么是词法环 ...
- SAOI 题解汇总
题解汇总 A. Chery 的魔法药水与 lrc 的韭菜 所有部分分代码及标程均在这里. 这个题目是我们前面的月考卷子改编后的 idea,去年就出了,今年翻出来经过加强得到了这道入门 题目. 首先,不 ...
- drf-restful规范、django原生编写接口
1.restful规范 REST全称是Representational State Transfer,中文意思是表述:表征性状态转移,它首次出现在2000年Roy Fielding的博士论文中.RES ...
- Java堆外缓存(一个很有意思的应用)
我们在开发过程中会遇到这样的场景:就是一个服务的各项 JVM 的配置都比较合理的情况下,它的 GC 情况还是不容乐观.分析之后发现有 2 个对象特别巨大,占了总存活堆内存的 90%以上.其中第 1 大 ...
- evil 控制窗口大小,比快捷键方便
下面是vim原本的支持的键 可以用于 emacs evil ,evil 用这个比用快捷键还方面些 1.纵向调整 :res[ize] num 指定当前窗口为num列num行 :res[ize] +num ...
- vscode unity omnisharp 配置问题,折腾两天终于解决了
一怒之下我恢复了电脑的出厂设置,重新配置一遍后还是报错, Could not locate MSBuild instance to register with OmniSharp. The .NET ...
- 力扣---213. 打家劫舍 II
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房 ...
- spring-in-action_day02
开发web应用 # 开发Spring web应用,最基本的需要构建以下组件: 1.pojo类(从数据库获取数据) 2.pringmvc控制器 3.视图模板(页面) ##第一步 构建pojo类 p ...
- 亲测有效! Studio One 6 V6.0.1 音乐编曲工具 含win/mac版
亲测有效! Studio One 6 V6.0.1 音乐编曲工具 含win/mac版 记录.生产.混合.掌握和执行所有操作.从工作室到舞台,Studio One6以易用为核心,是您的创意合作伙伴.当 ...
- JZOJ 3432. 【GDOI2014模拟】服务器
题目 解析 很容易想到的 \(dp\): 设 \(f_i\) 表示已经处理完 \(1..i\) 并且 \(i\) 是直接复制的需要的最小花费 那么 \(f_i=f_j+(i-j) \times (i- ...