题解 | #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")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务