题面
题目描述
您作为游戏者将得到 4 4 4个 1 − 13 1-13 1−13(在扑克牌里用 A A A代替 1 1 1, J J J代替 11 11 11, Q Q Q代替 12 12 12, K K K代替 13 13 13)之间的自然数作为操作数,而您的任务是对这 4 4 4个操作数进行适当的算术运算,判断运算结果是否等于 24 24 24。能输出 1 1 1,不能输出 0 0 0。您可以使用的运算只有: + + +, − - −, ∗ * ∗, / / /,您还可以使用 ( ( (, ) ) )来改变运算顺序。
注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如, ( 2 ∗ 2 ) / 4 (2*2) /4 (2∗2)/4是合法的, 2 ∗ ( 2 / 4 ) 2*(2/4) 2∗(2/4)是不合法的)。下面我们给出一个游戏的具体例子:若给出的 4 4 4个操作数是: 1 1 1、 2 2 2、 3 3 3、 7 7 7,则一种可能的解答是 1 + 2 + 3 ∗ 7 = 24 1+2+3*7=24 1+2+3∗7=24。
输入格式
四个牌面值。牌面值与牌面值之间用一个空格隔开。
输出格式
输出 0 0 0或 1 1 1。
模拟思路
运算优先级
- 在 4 4 4个数中,运算优先级有以下几种可能
( ⨀ \bigodot ⨀表示任意一个四则运算符)
序号 | 运算 |
---|---|
1 | (( a ⨀ b a\bigodot b a⨀b) ⨀ c \bigodot c ⨀c) ⨀ d \bigodot d ⨀d |
2 | ( a ⨀ a\bigodot a⨀( b ⨀ c b\bigodot c b⨀c)) ⨀ d \bigodot d ⨀d |
3 | a ⨀ a\bigodot a⨀(( b ⨀ c b\bigodot c b⨀c) ⨀ d \bigodot d ⨀d) |
4 | ( a ⨀ b a\bigodot b a⨀b) ⨀ |