Python的24点
def permutations(array):
permutations_list = []
for first_num in array:
array2 = array[:]
array2.remove(first_num)
for second_num in array2:
array3 = array2[:]
array3.remove(second_num)
for third_num in array3:
array4 = array3[:]
array4.remove(third_num)
forth_num = array4[0]
permutations_list.append([first_num, second_num, third_num, forth_num])
return permutations_list
def calc(lst):
result = permutations(lst)
operators = ["+", "-", "*", "/"]
list2 = []
for list1 in result:
number1 = list1[0]
number2 = list1[1]
number3 = list1[2]
number4 = list1[3]
for operator1 in operators:
for operator2 in operators:
for operator3 in operators:
expression = [
"(({0}{1}{2}){3}{4}){5}{6}".format(number1, operator1, number2, operator2, number3,
operator3, number4),
"({0}{1}{2}){3}({4}{5}{6})".format(number1, operator1, number2, operator2, number3,
operator3, number4),
"(({0}{1}({2}{3}{4})){5}{6})".format(number1, operator1, number2, operator2, number3,
operator3, number4),
"{0}{1}(({2}{3}{4}){5}{6})".format(number1, operator1, number2, operator2, number3,
operator3, number4),
"{0}{1}({2}{3}({4}{5}{6}))".format(number1, operator1, number2, operator2, number3,
operator3, number4),
"{0}{1}{2}{3}{4}{5}{6}".format(number1, operator1, number2, operator2, number3,
operator3, number4)
]
for e in expression:
try:
if round(eval(e), 2) == 24:
list2.append(e)
except ZeroDivisionError:
pass
list3 = list(set(list2))
return list3
num1 = int(input("请输入第1个数字:"))
num2 = int(input("请输入第2个数字:"))
num3 = int(input("请输入第3个数字:"))
num4 = int(input("请输入第4个数字:"))
num_list = [num1, num2, num3, num4]
result_list = calc(num_list)
if not result_list:
print("无解")
else:
for num3 in result_list:
print("求解结果:", num3)
本站作者已申明原创,禁止转载!
文章内容属作者个人观点,不代表本站立场,如有侵权立删。






