题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
nums = list(map(int,input().split())) def dfs(nums): if len(nums) == 1: if abs(nums[0]-24)<1e-6: return True for i in range(len(nums)-1): for j in range(i+1,len(nums)): a = nums[i] b = nums[j] for op in ["+","-","*","/"]: for k in range(2): if k==0: if op=="/" and b==0: return False else: new_nums = nums+[eval(op.join([str(a),str(b)]))] else: if op=="/" and a==0: return False else: new_nums = nums+[eval(op.join([str(b),str(a)]))] new_nums.remove(a) new_nums.remove(b) if dfs(new_nums): return True return False print(str(dfs(nums)).lower())