CCF计算机职业认证考试
2019-08-16 11:41:22来源:博客园 阅读 ()
201903-2 二十四点
【题目背景】
二十四点是一款著名的纸牌游戏,其游戏的目标是使用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+4x3=24 5+4x5x5=105 7-9-9+8=-3 5x6/5x4=24 3+5+7+9=24 1x1+9-9=1 1x9-5/9=9 8/5+6x9=55 6x7-3x6=24 6x4+4/5=24
import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); sc.nextLine(); while (n > 0) { String str = sc.nextLine(); Stack<Integer> number = new Stack<>(); char[] ch = str.toCharArray(); int sum = 0; int i = 0; /* * for (char c : ch) { System.out.println(c); } */ while (i < 7) { if (i == 0) { number.push(ch[i] - '0'); i++; }else { if (ch[i] == 'x') { i++; int left = number.pop(); number.push(left * (ch[i] - '0')); i++; //System.out.println("xxxxxxxx"); }else { if (ch[i] == '/') { i++; int left = number.pop(); number.push(left / (ch[i] - '0')); i++; //System.out.println("///////////"); }else { if (ch[i] == '-') { i++; number.push(-(ch[i] - '0')); i++; // System.out.println("--------------"); }else { i++; number.push(ch[i] - '0'); i++; // System.out.println("+++++++++++"); } } } } } sum = number.pop(); //System.out.println(sum); while (!number.empty()) { int right = number.pop(); sum += right; // System.out.println(right); // System.out.println(sum); } // System.out.println(sum); if (sum == 24) { System.out.println("Yes"); } else { System.out.println("No"); } n--; } } }
原文链接:https://www.cnblogs.com/weiji-yang/p/11285082.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Dubbo从入门到实战:入门篇
- 计算机基础到底是哪些基础?为什么很重要! 2020-06-08
- 学习计算机基础必读的4本经典入门书籍,自学编程必备书单! 2020-05-15
- 你真的以为计算机网络不重要吗,这份书单帮你搞定相关面试题 2020-05-13
- 年轻人,你不会真的以为自己懂得计算机网络吧? 2020-02-25
- 内存模型 2020-02-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash