题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
def dfs(L, res=0):
if len(L) == 0:
if int(res + 0.999) == 24 and int(res) == 24:
return True
else:
return False
if len(L) == 4:
for i in range(len(L)):
n = L[i]
del L[i]
if dfs(L, res + n):
return True
L.append(n)
for i in range(len(L)):
for op in "+-*/":
n = L[i]
del L[i]
if op == "+":
if dfs(L, res + n):
return True
elif op == "-":
if dfs(L, res - n):
return True
elif op == "*":
if dfs(L, res * n):
return True
elif op == "/":
if dfs(L, res / n):
return True
L.append(n)
L = list(map(int, input().split()))
if dfs(L):
print("true")
else:
print("false")

