题解 | #24点游戏算法#

24点游戏算法

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



import itertools


def fun(arr, y):

    # 前面的结果与后一个数加减乘除的可能
    res = []
    for x in arr:
        res.append(x)
        res.append(y)
        res.append(x + y)
        res.append(x - y)
        res.append(x * y)
        if y==0:
            continue
            res.append(x / y)  # 如果y==0,会导致程序异常退出
    return res

while 1:
    try:
        num_list = [int(i) for i in input().split()]
        #print(num_list)

        # 所有数字排列的顺序都考虑进去
        for i in range(len(list(itertools.permutations(num_list)))):
            a, b, c, d = list(itertools.permutations(num_list))[i]
            #print(a,b,c,d)
            list1 = fun([a], b)
            list2 = fun(list1, c)
            list3 = fun(list2, d)
            list4 = fun([a],b) # 前两个数运算
            list5 = fun([c],d) # 后两个数运算
            list7=[]
            for j in list5:
                list6=fun(list4,j) # 前两数结果挨个与后两个结果运算
                list7.extend(list6)
            #print(list7)
            if 24 in list3 or 24 in list7:
                print('true')
                break
        else:
            print('false')
            
    except:
        break
'''
age=[13,14,17,14]
for i in age:
    if i>=18:
        print('有成年人')
        break
else:
    print('全部是未成年,可以使用')'''
'''
1 3 1 5
'''





全部评论

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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