题解 | #24点游戏算法#

24点游戏算法

https://www.nowcoder.com/practice/fbc417f314f745b1978fc751a54ac8cb

nums = list(map(int,input().split()))
def dfs(nums):

    if len(nums) == 1:
        if abs(nums[0]-24)<1e-6:
            return True
    for i in range(len(nums)-1):
        for j in range(i+1,len(nums)):
            
            a = nums[i]
            b = nums[j]
            for op in ["+","-","*","/"]:
                for k in range(2):
                    
                    if k==0:
                        if op=="/" and b==0:
                            return False
                        else:
                            new_nums = nums+[eval(op.join([str(a),str(b)]))]
                    else:
                        if op=="/" and a==0:
                            return False
                        else:
                            new_nums = nums+[eval(op.join([str(b),str(a)]))]
                    new_nums.remove(a)
                    new_nums.remove(b)
                    if dfs(new_nums):
                            return True
    return False
print(str(dfs(nums)).lower())

全部评论

相关推荐

26届双非不知道咋找得到实习了
kong_kong:1.广投,boss每天200次机会用完, 2.简历上技能和项目经历突出你在这个岗位上的突出优势。 3.还是广投,不要挑地点,公司规模(我当时是线下一个都不去,如果你离得近可以考虑一下去现场) 4.简历写的自己成绩好什么的,奖项也写一写(懂的都懂)
点赞 评论 收藏
分享
海螺很能干:每次看到这种简历都没工作我就觉得离谱
点赞 评论 收藏
分享
韵不凡:软件开发的工作需要博士吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务