CSP201903-2 二十四点(Python)
题目
试题编号: | 201903-2 |
试题名称: | 二十四点 |
时间限制: | 1.0s |
内存限制: | 512.0MB |
题目背景
二十四点是一款著名的纸牌游戏,其游戏的目标是使用 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 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
子任务
程序代码
# 输入游戏解的个数
n = int(input())
# 输出列表
output = []
# 循环输入运算符替换并计算结果
for i in range(n):
order = input().replace('x','*').replace('/','//')
if eval(order) == 24:
output.append('Yes')
else:
output.append('No')
# 输出结果
for i in range(n):
print(output[i])
本文地址:https://blog.csdn.net/qq_45899597/article/details/114004773
下一篇: LeetCode——56. 合并区间