网站搜索不到了,惠州市建设局人员备案网站,代做效果图网站,快速网站轻松排名题目#xff1a;算24
描述 给出4个小于10个正整数#xff0c;你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是#xff0c;是否存在一种方式使得得到的表达式的结果等于24。
这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定…
题目算24
描述 给出4个小于10个正整数你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是是否存在一种方式使得得到的表达式的结果等于24。
这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致这里的除法定义是实数除法。
比如对于5551我们知道5 * (5 – 1 / 5) 24因此可以得到24。又比如对于1142我们怎么都不能得到24。 输入 输入数据包括多行每行给出一组测试数据包括4个小于10个正整数。最后一组测试数据中包括4个0表示输入的结束这组数据不用处理。 输出 对于每一组测试数据输出一行如果可以得到24输出“YES”否则输出“NO”。 样例输入
5 5 5 1
1 1 4 2
0 0 0 0样例输出
YES
NOAC代码
import math
EPS 1e-6
def equal( x,y ):return math.fabs(x-y) EPS
def count24(a): n len(a)if n 1:return equal(24,a[0])for i in range(n-1):for j in range(i1,n):x,y a[i],a[j] t [xy,x-y,y-x,x*y]if not equal(y,0):t.append( x / y)if not equal(x,0):t.append( y / x)for v in t:b [v] for k in range(n):if k ! i and k ! j:b.append(a[k])if count24(b):return Truereturn Falsewhile True:a list(map(int,input().split()))if a[0] 0:breakif count24(a):print( YES )else:print( NO )