题解 | 24点游戏算法
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
def func(num):
if len(num) == 1:
return abs(abs(num[0])-24) < 0.00001
for i in range(len(num)):
for j in range(i+1, len(num)):
m1 = num[i]
m2 = num[j]
rst = num[:i] + num[i+1:j] + num[j+1:]
if func([m1+m2]+rst) or func([m1-m2]+rst) or func([m1*m2]+rst):
return True
if m1 != 0 and func([m2/m1]+rst):
return True
if m2 != 0 and func([m1/m2]+rst):
return True
while True:
try:
data = list(map(int, input().split()))
res = func(data)
if res:
print("true")
else:
print("false")
except:
break
阿里云工作强度 598人发布