题解 | 24点游戏算法
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
l1 = [int(i) for i in input().split()] zhuangtai = False def dfs(l): global zhuangtai if len(l) == 1: if abs(l[0] - 24)<0.000001: zhuangtai = True return True return False for i in range(len(l)): for j in range(i+1,len(l)): l2 = [] for k in range(len(l)): if k != i and k != j: l2.append(l[k]) l2.append(l[i]+l[j]) dfs(l2) l2.pop() l2.append(l[i]-l[j]) dfs(l2) l2.pop() l2.append(l[i]*l[j]) dfs(l2) l2.pop() if l[j] != 0: l2.append(l[i]/l[j]) dfs(l2) l2.pop() if l[i] != 0: l2.append(l[j]/l[i]) dfs(l2) l2.pop() l2.append(l[j]-l[i]) dfs(l2) l2.pop() dfs(l1) print("true" if zhuangtai else "false")