【题目背景】

二十四点是一款著名的纸牌游戏,其游戏的目标是使用 3 个加减乘除运算使得 4
张纸牌上数字的运算结果为 24。
【题目描述】
定义每一个游戏由 4 个从 1-9 的数字和 3 个四则运算符组成,保证四则运算符将
数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行。其中加法用
符号 + 表示,减法用符号 - 表示,乘法用小写字母 x 表示,除法用符号 / 表示。在游
戏里除法为整除,例如 2 / 3 = 0, 3 / 2 = 1, 4 / 2 = 2。
老师给了你 n 个游戏的解,请你编写程序验证每个游戏的结果是否为 24 。
【输入格式】
从标准输入读入数据。
第一行输入一个整数 n,从第 2 行开始到第 n + 1 行中,每一行包含一个长度为 7
的字符串,为上述的 24 点游戏,保证数据格式合法。
【输出格式】
输出到标准输出。
包含 n 行,对于每一个游戏,如果其结果为 24 则输出字符串 Yes,否则输出字符
串 No。
【样例 1 输入】
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
【样例 1 输出】
Yes
No
No
Yes
Yes
No
No
No
Yes
Yes
【样例 1 解释】
9 + 3 + 4 × 3 = 24
5 + 4 × 5 × 5 = 105
7 - 9 - 9 + 8 = -3
5 × 6/5 × 4 = 24
3 + 5 + 7 + 9 = 24
1 × 1 + 9 - 9 = 1
1 × 9 - 5/9 = 9
8/5 + 6 × 9 = 55
6 × 7 - 3 × 6 = 24
6 × 4 + 4/5 = 24

代码:(借鉴了思路分析,改进了代码完美运行)

#include <iostream>
#include <string>using namespace std;int a[4], b[3];
int Caculate(string s) {int n = s.length();a[0] = s[0] - '0';int cnt = 1, cntb = 0;for (int i = 1; i < n; i++) {if (i % 2 == 0) {a[cnt++] = s[i] - '0';}else {b[cntb++] = s[i];}}int tmp;for (int i = 0; i < 3; i++) {if (b[i] == '+' || b[i] == '-') {continue;}else {if (b[i] == 'x') {int l = i;while (a[l] == -1) {//判断是否计算过a[i];l = l - 1;}tmp = a[l] * a[i + 1];a[l] = tmp;a[i + 1] = -1;}else if (b[i] == '/') {int l = i;while (a[l] == -1) {l = l - 1;}tmp = a[l] / a[i + 1];a[l] = tmp;a[i + 1] = -1;}}}int ans = a[0];for (int i = 0; i < 3; i++) {if (b[i] == '+'){ans = ans + (a[i + 1]);}else if(b[i]=='-'){ans = ans - (a[i + 1]);}}return ans;
}int main() {int n;cin >> n;string str[10000];for (int i = 0; i < n; i++) {char s[6];cin >> s;str[i] = s;}for (int i = 0; i < n; i++) {int ans = Caculate(str[i]);if (ans == 24) {cout << "Yes" << endl;}else {cout << "No" << endl;}}return 0;
}

ccfcsp201903-2 24点游戏相关推荐

  1. php 24点算法,PHP实现简单的24点游戏

    忽然想到做一个小应用,需要使用到24点判断,故而写一个简单版的. 代码粗糙,轻拍. /** * 24点游戏 * @author 长安猎人 */ $arr = [10, 4, 5, 3]; $opArr ...

  2. 【c#】24点游戏的实现(可存档且局域网互联)

    (更新,附上此款游戏的源代码供大家学习吧!http://download.csdn.net/detail/gshengod/5774531) lz辛苦考上了北邮的研究生,刚进入实验室,就接到了一个棘手 ...

  3. Java黑皮书课后题第3章:**3.24(游戏:抽牌)编写程序,模拟从一副52张的牌中抽一张牌,程序应显示牌的大小、花色

    **3.24(游戏:抽牌)编写程序,模拟从一副52张的牌中抽一张牌,程序应显示牌的大小.花色 题目 题目概述 运行示例 破题 代码 题目 题目概述 **3.24(游戏:抽牌)编写程序,模拟从一副52张 ...

  4. python游戏开发步骤_详解Python GUI版24点游戏制作过程

    本文作者为浙江温州永嘉县教师发展中心应根球老师,电子邮箱:ycicada@163.com. 传统用扑克牌算24点游戏用于小学低中段学生训练四则运算效果不错,也可用于防止老年痴呆.本项目模拟传统扑克24 ...

  5. 用matlab算24点小游戏,24点游戏的Matlab程序

    function GUI_games24 S.fh = figure('units','pixels',... 'position',[500 500 800 200],... 'menubar',' ...

  6. 基于android平台的24点游戏设计与实现需求分析,基于Android平台的24点游戏设计与实现需求分析_毕业设计论文.doc...

    基于Android平台的24点游戏设计与实现 摘要 随着移动设备的普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来.目前国内最常见的移动开发平台有Symbian ...

  7. 1.16 24点游戏

    24点游戏的解决办法,也是采取穷举法的思路,4个数,有4!=24中排列的方法,然后3个操作符号,有4×4×4 = 64种结果,再加上括号,有5种结果,于是,每4个数有24*66*5 = 7680中结果 ...

  8. 24点游戏详细截图介绍以及原型、Alpha、Beta对比

    原型设计 图片展示 功能与界面设计 1.登录注册 2.手机号验证 3.24点游戏 4.粉色系女生界面 Alpha 图片展示 功能与界面设计 1.24点游戏 2.背景音乐 3.可查看多种可能的答案 4. ...

  9. 用python代替人脑运算24点游戏

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:老方玩编程 PS:如有需要Python学习资料的小伙伴可以加点击下方链 ...

  10. cdoj 1252 24点游戏 dfs

    24点游戏 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1252 Descr ...

最新文章

  1. 【仿去哪儿登录】UITextField输入时检查输入框是否为空
  2. arraylist从大到小排序_JAVA零基础入门课程笔记----数组排序
  3. 浏览器和搜索引擎的区别
  4. 抖音python广告_抖音上好看的小姐姐,Python给你都下载了
  5. boost::adjacent_find相关的测试程序
  6. [Python3]Python面向对象的程序设计
  7. MongoDB数据库的迁移
  8. android 文件删除命令大全,Android中删除sdcard里文件的命令
  9. vista下推荐大家用foobar2000播放器
  10. 【Java并发编程】:Runnable和Thread实现多线程的区别
  11. linux下测硬盘读写速率,linux下测试硬盘读写速度 互联网技术圈 互联网技术圈
  12. kdj指标主要看哪个值_史上最全KDJ指标用法详解,学习KDJ指标看这一篇就够了
  13. 标定方法——张正友标定法
  14. 小象学院 零基础Python入门 3/4 python开发环境配置
  15. WikiOI 1139 观光公交 (NOIP2011) 贪心
  16. excel文档加密破解,简单操作亲测有效
  17. configure: error: GD build test failed. Please check the config.log
  18. HelixCore P4 Command Reference(详解,持续更新中)
  19. AT89S8253片内EEPROM字节读、字节写、页读、页写驱动代码、注意事项及注释
  20. 用图灵机器人2.0实现聊天机器人

热门文章

  1. GPT系列学习笔记:GPT、GPT2、GPT3
  2. FRM-30425: Summarized database item must reside in a block with Query All Records or Precompute Summ
  3. 气节白露怎么翻译 white dew
  4. C#项目实战|人脸识别考勤
  5. Oauth2系列2:授权码模式
  6. uniapp 提供的手指事件
  7. We trust you have received the usual lecture from the local System
  8. 计算机与测控技术专业就业方向,测控专业就业方向及前景
  9. Navicat Premium连接远程数据库
  10. Python函数:np.sum()以及axis=0、axis=1用法