Problem E: 二十四点
Problem Description
二十四点是一款著名的纸牌游戏,其游戏的目标是使用3个加减乘除运算使得4张纸牌上数字的运算结果为24。
定义每一个游戏由4个从1-9的数字和3个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其它字符,运算顺序按照四则运算顺序进行。其中加法用+表示,减法用-表示,乘法用小写字母x表示,除法用/表示,在游戏里除法为整除。例如:2/3=0,3/2=1,4/2=2。
老师给了你n个游戏的解,请你编程验证每个游戏的结果是否为24。
定义每一个游戏由4个从1-9的数字和3个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其它字符,运算顺序按照四则运算顺序进行。其中加法用+表示,减法用-表示,乘法用小写字母x表示,除法用/表示,在游戏里除法为整除。例如:2/3=0,3/2=1,4/2=2。
老师给了你n个游戏的解,请你编程验证每个游戏的结果是否为24。
Input Description
从标准输入读入数据。
第一行输入一个整数n,从第2行开始到第n+1行中,每一行包含一个长度为7的字符串,为上述24点游戏,保证数据格式合法。
第一行输入一个整数n,从第2行开始到第n+1行中,每一行包含一个长度为7的字符串,为上述24点游戏,保证数据格式合法。
Output Description
输出到标准输出。
包含n行,对于每一个游戏,如果其结果为24,则输出字符串Yes,否则输出字符串No。
包含n行,对于每一个游戏,如果其结果为24,则输出字符串Yes,否则输出字符串No。
Sample Input
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
Sample Output
Yes
No
No
Yes
Yes
No
No
No
Yes
Yes
ac代码:
1 for i in range(0, n): 2 x.append(input()) 3 4 for i in x: 5 ans = i.replace('x', '*') #字符串可用replace函数 6 # eval()函数将字符串当成有效的表达式来求值并返回计算结果。 7 result = int(eval(ans)) 8 if result == 24: 9 print("Yes") 10 else: 11 print("No")