def dfs(nums):
if not nums:
return False
if len(nums)==1:
return abs(nums[0]-24)<1e-6
for i, a in enumerate(nums): # 获取第一个数字
for j, b in enumerate(nums): # 获取第二个数字
if i!=j: # 控制不重复
newNums = list()
for k, c in enumerate(nums): # 获取剩余数字
if k!=i and k!=j:
newNums.append(c)
d = [a+b,a*b,a-b]
for k in range(4):
if k<2 and i>j: #对于+和*操作来说不需要考虑两者的顺序
continue
if k<3:
newNums.append(d[k])
else:
if abs(b)<1e-6: # 排除除数为0的情况
continue
newNums.append(a/b)
if dfs(newNums):
return True
newNums.pop()
return False
while True:
try:
nums = list(map(int,input().split()))
if dfs(nums):
print("true")
else:
print("false")
except:
break
02-16
229
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交