目录

  • 题目来源
  • 碎碎念
  • 代码

题目来源

二十四点

碎碎念

加号、减号是同一层
乘法、除法是同一层
优先执行乘除

代码

#include <iostream>
#include <fstream>using namespace std;#define STRLENGTH 7int main() {ifstream cin("in.txt");// 数字(4个): 1- 9// 运算符(3个): 加减乘除, !!!除为整除!!!int N;cin>>N;while (N-- > 0) {  // 判断 N 次,是否为四则运算string str;cin>>str;int num[4];  // 存放数字char op[3];  // 存放运算符int indexNum = 0, indexOp = 0;int index = 0;while (index < STRLENGTH) {  // 遍历每一个字符if (index % 2 == 1) {  // 运算符的位置//cout<<"op"<<endl;char c = str[index];if (c == '+' || c == '-') {  // 是加号/ 减号, 存储到opop[indexOp++] = c;//cout<<"    +/-"<<endl;}else {  // 是 乘号或者除号, 当即执行int first = num[--indexNum];int second = str[++index] - '0';//cout<<index<<"  *  "<<str[index]<<endl;if (c  == 'x') {num[indexNum++] = first * second;}else {num[indexNum++] = first / second;}//cout<<first<<" "<<second<<endl;//cout<<"    "<<c<<"  "<<num[indexNum - 1]<<endl;;}}else {  // 存储数字//cout<<"num"<<endl;num[indexNum++] = str[index] - '0';}++index;}int j = 0;for (int i = 0; i < indexOp; ++i) {  // 剩下加减号, 按顺序执行int first = num[j++];int second = num[j++];char c = op[i];if (c == '+') {num[--j] = first + second;}else {num[--j] = first - second;}}if (num[j] == 24) {cout<<"Yes"<<endl;}else {cout<<"No"<<endl;}}return 0;
}

CSP CCF: 201903-2 二十四点 (C++)相关推荐

  1. csp试题2:二十四点

    csp试题2:二十四点 题目 分析 代码 总结 题目 问题描述       二十四点是一款著名的纸牌游戏,其游戏的目标是使用3个加减乘除运算使得4张纸牌上数字的运算结果为24.       定义每一个 ...

  2. 【CCF】201903-2 二十四点

    这道题我每次写都都会犯一些细节性的错误,然后最后调试的时候真的是怎么都找不出来!然后跟朋友说,让朋友帮忙找,结果朋友一眼看出来!所以,发现代码哪有有错的时候,当排除完你觉得会出错的地方以后,一定要再去 ...

  3. 【CCF 201903-2】 二十四点(符号栈)

    写在前面 本题的常规做法是使用符号栈,特殊解法是使用Python的eval函数. 算法思想 将中缀表达式转化为后缀表达式,使用符号栈和数字栈. 当新的符号op入栈时,有两种情况: ① op的优先级 & ...

  4. C语言 解决CCF 二十四点问题

    利用 C 语言 解决 CCF题库中的二十四点问题 特别致谢:原博主程序 编译环境: IDE:DEV-C++ 语言:C语言 CCF CSP官方往年题库链接点我进入 1. 题目如下: 解题思路: 此题难点 ...

  5. CCF CSP201903-2二十四点

    CCF CSP201903-2二十四点 题目描述 要点分析 此题是典型的中缀表达式的求解问题, 可以采用堆栈求解. 具体计算思路: 使用两个栈, num用于存储操作数, opt用于存储操作符 从左往右 ...

  6. CCF 201903-2 二十四点 用栈模拟简单计算器

    二十四点 来源:CCF 背景 二十四点是一款著名的纸牌游戏,其游戏的目标是使用 3 个加减乘除运算使得 4张纸牌上数字的运算结果为 24. 题目 定义每一个游戏由 4 个从 1-9 的数字和 3 个四 ...

  7. 「csp模拟试题 201903-2」二十四点 C/C++ 100分

    目录 题目 输入输出样例 题解思路 题解源码(c/c++) 题目 :二十四点 [问题描述] 定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号 ...

  8. 201903-2二十四点[20201213封笔题目]没写呢

    2020.12.13 csp今天就考试完了,我用了三天的时间,倒着刷完了所有的第一题,正着刷第二题,就到了这里.暂时结束吧. 哎,发现现在的考试越来越难了. 今天的考试连第二个体都过不了. 我死了. ...

  9. CCF-CSP 201903-2 二十四点(python实现)

    题源来自---CCF计算机职业资格认证官网,点击报名入口,可进行模拟考试进行练习.代码在最后. 代码 应用eval函数 eval:将传入的字符串当成有效的表达式来求值并返回计算结果. n=int(in ...

最新文章

  1. MegEngine 框架设计
  2. 提高 Java 代码质量
  3. linux 命令读db文件格式,使用linux的db_load命令生成db数据库
  4. CF1202 - E. You Are Given Some Strings...(AC自动机)
  5. html设置标签上下居中,html 标签内部元素上下居中
  6. “约见”面试官系列之常见面试题之第五十八篇之join和split(建议收藏)
  7. OpenSessionInViewFilter 对 lazy 加载 的配置及作用
  8. http://syy7.com/a/33.php,CVE-2020-7062
  9. (十五) 构建springmvc+mybatis+dubbo分布式平台-window安装dubbo管控台
  10. linux perl 执行java,如何从Java调用Perl?
  11. session过期时间
  12. 入门级CC(Smart3D)照片建模
  13. GPT分区和MBR分区切换
  14. 人工智能历史回眸:达特茅斯会议
  15. 简单的纸牌游戏——小猫钓鱼(详细解释实现)
  16. 也谈分库分表在实际应用的实践
  17. 高效文件管理-Git管理个人文件指南
  18. Windows cmd命令(五)find和findstr指令
  19. STM32单片机硬件I2C读取AHT10温湿度传感器数据
  20. Unity 蓝湖 关于UI工作流优化的思考(二)

热门文章

  1. 数据库备份和还原bak文件
  2. CStdioFile读写中文乱码
  3. Unity3D之第三人称视角相机跟随
  4. COcos2d-X 中文API
  5. 555555555555555555555555555555555555555555555。。。。。。。。。。。。。。。。。。
  6. .NET WebApi调用微信接口Https请求工具类
  7. jmeter参数化不起效果
  8. [转]netstat输出内容详解
  9. TOJ 3471.Happy XiaoXiao Guo
  10. 【教程】Excel控件Spire.XLS 教程:在C#,VB.NET中添加Excel边框