题解 | #24点游戏算法#

24点游戏算法

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



def dfs(nums):
    if len(nums) == 1:
        if abs(nums[0]-24) <= 1e-1:
            return True
        else:
            return False

    for i in range(len(nums)-1):
        for j in range(i+1, len(nums)):
            if i != j:
                a = nums[i]
                b = nums[j]
                ans = dfs(nums[:i] + nums[i+1:j] + nums[j+1:] + [a+b]) \
                or dfs(nums[:i] + nums[i+1:j] + nums[j+1:] + [a-b]) \
                or dfs(nums[:i] + nums[i+1:j] + nums[j+1:] + [a*b]) \
                or (b != 0 and dfs(nums[:i] + nums[i+1:j] + nums[j+1:] + [a/b]))
                if ans == True:
                    return ans
    return False

nums = list(map(int, input().split()))
if dfs(nums):
    print("true")
else:
    print("false")



全部评论

相关推荐

07-02 13:52
武汉大学 golang
骗你的不露头也秒
牛客87776816...:😃查看图片
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
06-10 23:36
已编辑
首都经济贸易大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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