Problem E: 二十四点

116 篇文章 2 订阅
20 篇文章 0 订阅

Problem Description

二十四点是一款著名的纸牌游戏,其游戏的目标是使用3个加减乘除运算使得4张纸牌上数字的运算结果为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点游戏,保证数据格式合法。

 

 Output Description

 输出到标准输出。
包含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

 Hint

 我的想法:

 我的代码:



if __name__ == '__main__':
    n = int(input())
    # 读取n行数据,将其装入列表
    list_data = []
    for i in range(0, n):
        list_data.append(input())

    # 将字符串转成表达式
    for item in list_data:
        res = item.replace('x', '*')
        result = int(eval(res))
        if result == 24:
            print("Yes")
        else:
            print("No")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小木苓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值