题解 | 24点运算
24点运算
https://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d
from types import CodeType
a = input().split()
if "joker" in a or "JOKER" in a:
print("ERROR")
else:
for i in range(4):
if a[i] == "J":
a[i] = '11'
elif a[i] == "Q":
a[i] = '12'
elif a[i] == "K":
a[i] = '13'
elif a[i] == "A":
a[i] = '1'
a[0]+='a'
a[1]+='b'
a[2]+='c'
a[3]+='d'
opts="+-*/"
for i in a:
for o1 in opts:
for j in a:
if i==j:
continue
for o2 in opts:
for k in a:
if k==j or k==i:
continue
for o3 in opts:
for h in a:
if h==i or h==j or h==k:
continue
n1=i[0:-1]
n2=j[0:-1]
n3=k[0:-1]
n4=h[0:-1]
exp='(('+n1+o1+n2+')'+o2+n3+')'+o3+n4
if -1e-6< eval(exp)-24 <1e-6:
if n1=="11":
n1='J'
elif n1=='12':
n1='Q'
elif n1=='13':
n1='K'
elif n1=='1':
n1='A'
if n2=="11":
n2='J'
elif n2=='12':
n2='Q'
elif n2=='13':
n2='K'
elif n2=='1':
n2='A'
if n3=="11":
n3='J'
elif n3=='12':
n3='Q'
elif n3=='13':
n3='K'
elif n3=='1':
n3='A'
if n4=="11":
n4='J'
elif n4=='12':
n4='Q'
elif n4=='13':
n4='K'
elif n4=='1':
n4='A'
print(n1+o1+n2+o2+n3+o3+n4)
exit()
print("NONE")
查看21道真题和解析
