题解 | #24点游戏算法#

24点游戏算法

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

def kk(a):
    n = len(a)
    if n == 1:
        if abs(a[0] - 24) < 1e-6: #因为除法的存在 用abs() < 1e-6判断两数相等是很有必要的 不然8/(3-8/3) 不通过                                            
            return True
        return False
    for i in range(n - 1):
        for j in range(i + 1, n):
            li = []
            for k in range(n):
                if k != i and k != j:
                    li.append(a[k])
            if kk(li + [a[i] * a[j]]):
                return True
            if kk(li + [a[i] + a[j]]):
                return True
            if kk(li + [a[i] - a[j]]):
                return True
            if kk(li + [a[j] - a[i]]):
                return True
            if abs(a[i]) > 1e-6:
                if kk(li + [a[j] / a[i]]):
                    return True
            if abs(a[j]) > 1e-6:
                if kk(li + [a[i] / a[j]]):
                    return True
    return False


while True:
    try:
        a = list(map(int, input().split()))
        print("true" if kk(a) else "false")
    except:
        break

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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