题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
没什么新意, 纯暴力破解
import itertools num = input().split(' ') def find(num): possible = 'false' for nums in itertools.permutations(num): for one in '+-*/': for two in '+-*/': for three in '+-*/': cmd = nums[0]+one+nums[1]+two+nums[2]+three+nums[3] for i in [0,2,4,6]: cmd_left = cmd[0:i]+'('+cmd[i::] for j in [len(cmd_left)-2*k for k in range(4)]: cmd_right = cmd_left[0:j] + ')' + cmd_left[j::] try: r = eval(cmd_right) if r == 24: possible = 'true' return possible except: pass return possible print(find(num))