import itertools
def calculate_24(nums):
operators = ['+', '-', '*', '/']
for permutation in itertools.permutations(nums):
for operator_permutation in itertools.product(operators, repeat=3):
expression = f'({permutation[0]}{operator_permutation[0]}{permutation[1]}){operator_permutation[1]}' \
f'({permutation[2]}{operator_permutation[2]}{permutation[3]})'
try:
if abs(eval(expression) - 24) < 1e-9:
return expression
except ZeroDivisionError:
pass
expression = f'(({permutation[0]}{operator_permutation[0]}{permutation[1]}){operator_permutation[1]}' \
f'{permutation[2]}){operator_permutation[2]}{permutation[3]}'
try:
if abs(eval(expression) - 24) < 1e-9:
return expression
except ZeroDivisionError:
pass
expression = f'{permutation[0]}{operator_permutation[0]}(({permutation[1]}{operator_permutation[1]})' \
f'{operator_permutation[2]}({permutation[2]}{operator_permutation[2]}{permutation[3]}))'
try:
if abs(eval(expression) - 24) < 1e-9:
return expression
except ZeroDivisionError:
pass
return "没有找到能算出24点的组合"
if __name__ == "__main__":
numbers = [int(num) for num in input("请输入4个数字,用空格分隔: ").split()]
if len(numbers)!= 4:
print("请输入4个数字")
else:
result = calculate_24(numbers)
print(result)