HJ67 题解 | #24点游戏算法#

24点游戏算法

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

#暴力枚举试一试

a=input().split()
op=["+","-","*","/"]
#遍历操作数
for i in a:
    temp=a[:]#这里拷贝一份,不要直接操作a,而且拷贝的时候还不能直接赋值为a,这样是浅拷贝,下一行操作temp也会影响a,得切片
    temp.remove(i)#remove没有返回值,所以不能直接赋值给b
    b=temp
    for j in b:
        temp=b[:]
        temp.remove(j)
        c=temp
        for k in c:
            temp=c[:]
            temp.remove(k)
            d=temp

            #遍历运算符
            for l in op:
                for m in op:
                    for n in op:
                        # print(eval(i+l+j+m+k+n+d[0]))
                        ans=eval(str(eval(str(eval(i+l+j))+m+k))+n+d[0])#一步一步算,这样模拟有些情况带括号
                        # print(ans)
                        # print(i,j,k,d[0])
                        if abs(ans-24)<0.000001:
                            print("true")
                            exit()
else:
    print("false")

#过啦~

#华为##华为od##华为机试##华为od机试#
华为HJ103所有解法 文章被收录于专栏

这是我准备华为od面试的专属专栏,我会把自己的解法更新在里面,我会尽量写清楚自己的思路以及多写关键注释,希望对阅读的人有帮助~~~

全部评论

相关推荐

昨天 11:07
门头沟学院 Java
点赞 评论 收藏
分享
07-17 12:09
门头沟学院 Java
讲的口干舌燥,头都晕了怎么要讲这么长啊
码农索隆:没事,你口干舌燥,他不一定会看,
投递小鹏汽车等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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