题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
def judgePoint24(num):
e = 1e-6
def operate(x, y):
return [x+y, x-y, x*y] + ([x/y] if y - 0 > e else []) + ([y/x] if x - 0 > e else [])
def dfs(num):
# 若只剩一个数字,判断是否为24
if len(num) == 1:
return abs(num[0] - 24) < e
n = len(num)
# 遍历列表中所有数字
for i in range(n):
for j in range(n):
# 针对不同的两个数字
if i != j:
remains = [num[k] for k in range(n) if k != i and k != j] #去掉两个数字后的列表
for value in operate(num[i], num[j]):
if dfs(remains + [value]):
return True
return False
if dfs(num):
return "true"
else:
return "false"
num = list(map(int, input().split()))
print(judgePoint24(num))
vivo公司福利 724人发布
查看9道真题和解析