题解 | #24点运算#
24点运算
https://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d
from itertools import permutations def fun(): num = list(map(int, input().split(' '))) def dfs(n, value, i): if i == 3: # 当前列表已经递归完 return True if value == 24 else False # 当前递归计算的值是不是24 # 递归当前列表的每一种运算 if dfs(n, value + n[i + 1], i + 1) or dfs(n, value - n[i + 1], i + 1) or dfs(n, value * n[i + 1], i + 1) or dfs(n, value / n[i + 1], i + 1): return True elif i == 1 and (dfs(n, value * (n[i+1] + n[i+2]), i+2) or dfs(n, value * (n[i+1] - n[i+2]), i+2)): # 后两位是括号 return True elif i == 1 and ((n[i+1] - n[i+2] != 0 and dfs(n, value / (n[i+1] - n[i+2]), i+2)) or dfs(n, value / (n[i+1] + n[i+2]), i+2)): # 后两位是括号 return True return False # 循环输入的4位数的排列 for _n in list(permutations(num)): if dfs(_n, _n[0], 0): # 只要有一种满足则停止 print('true') return print('false') fun()