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语言与智能技术竞赛的三元组抽取比赛方面的一次尝试.由于该比赛早已结束,笔者当时也没有参加这个比赛,因此没有测评成绩,我们也只能拿到训练集和验证集.但是,这并不耽误我们在这 ...
随机推荐
- 论文翻译:2022_Phase-Aware Deep Speech Enhancement: It’s All About The Frame Length
摘要 虽然相位感知语音处理近年来受到越来越多的关注,但大多数帧长约为32 ms的窄带STFT方法显示出相位对整体性能的影响相当温和.与此同时,现代基于深度神经网络(DNN)的方法,如Conv-TasN ...
- java优化几个小步骤
1.top查看消耗cpu高的java程序进程2.ps -mp [替换为进程ID PID] -o THREAD,tid,time3.printf "%x" 114134.stack ...
- DVWA靶场实战(十四)——JavaScript
DVWA靶场实战(十四) 五.Java Script: 1.漏洞原理: 这里的JavaScript其实是JavaScript Attack也就是JS攻击.JavaScript是一种基于对象和事件驱动的 ...
- python爬虫(含scrapy)
python爬虫 1.解析HTML: lxml 是一种python编写的库,可以迅速.灵活的处理xml和html 使用:根据版本的不同,有如下两种: 形式1: from lxml import etr ...
- 记一次 .NET 某医保平台 CPU 爆高分析
一:背景 1. 讲故事 一直在追这个系列的朋友应该能感受到,我给这个行业中无数的陌生人分析过各种dump,终于在上周有位老同学找到我,还是个大妹子,必须有求必应 . 妹子公司的系统最近在某次升级之后, ...
- DESIR队列研究: 早期SpA患者骶髂关节放射学结构损伤的不同定义对结构损伤变化的敏感性
DESIR队列研究: 早期SpA患者骶髂关节放射学结构损伤的不同定义对结构损伤变化的敏感性 EULAR2015; PresentID: THU0356 SENSITIVITY TO CHANGE OF ...
- js中Math.floor、Math.ceil、Math.round和parseInt小数取整小结
虽然知道结果都可以返回一个整数,但是四者的区别尤其是关于-0.5的取整情况貌似还是需要注意一下一.Math.floor(向下取整) 作用:返回小于等于参数的最大整数. eg: Math.floor(5 ...
- pip换源和制作虚拟环境操作步骤讲解
目录 一.pip换源及虚拟环境 二.虚拟环境 一.pip换源及虚拟环境 我们Python的强大之处就是有非常多的牛逼的第三方模块,后面的程序员只需要下载第三方模块,然后站在大佬们的肩膀上开发,第三方开 ...
- h5项目自适应字体和宽高。用rem
已知: 1.浏览器默认的字号是16px,html{font-size: 87.5%;}(16*0.875 = 14px). 2.css中的单位换算:rem 与 px 的换算为 px = rem * 设 ...
- asp输入框input通用输入限制
1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'')" onafte ...