题解 | #24点游戏算法#
24点游戏算法
https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb
def dfs(lst):
if lst ==[]:
return False
if len(lst) == 1:
return abs(lst[0]-24)<0.000001
for i in range(len(lst)):
for j in range(len(lst)):
if i!=j:
news = []
for k in range(len(lst)):
if k != i and k != j:
news.append(lst[k])
for a in range(4):
if a==0:
news.append(lst[i]+lst[j])
if a==1:
news.append(lst[i]*lst[j])
if a==2:
news.append(lst[i]-lst[j])
if a==3 and lst[j]!=0:
news.append(lst[i]/lst[j])
if dfs(news) == True:
return True
if len(news)!=0:
news.pop()
return False
lst = list(map(int,input().split(" ")))
if dfs(lst)==True:
print("true")
else:
print("false")
韶音科技公司氛围 647人发布
查看3道真题和解析