题解 | #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))