拼多多笔试第三题骰子,只过了85,哪里有问题。。

import sys
if __name__ == '__main__':
    n = int(sys.stdin.readline().strip())
    nums = list(map(float, sys.stdin.readline().strip().split()))
    nums = sorted(nums)
    result = 0.0
    fenmu = 1.0
    fenzi1 = 1.0
    fenzi2 = 1.0
    max_v = int(nums[-1])
    for cur in range(1, max_v+1, 1):
        if cur == 1:
            for i in nums:
                fenmu = fenmu * i
            pro = cur/fenmu
            r = pro * cur
            result += r
            continue
        fenmu = 1.0
        fenzi1 = 1.0
        fenzi2 = 1.0
        for i in nums:
            if cur <= i:
                fenmu = fenmu * i
                fenzi1 = fenzi1 * cur
                fenzi2 = fenzi2 * (cur-1)
        pro = (fenzi1 - fenzi2) / fenmu
        r = pro * cur
        result += r
    # 后面的只是为了取2位浮点数
    result = str(result)
    idx = result.index('.')
    a = result[0:idx]
    b = result[idx+1:]
    if len(b) ==2:
        b = b
    elif len(b) > 3:
        if int(b[2]) >= 5:
            b = b[0] + str(int(b[1])+1)
        else:
            b = b[0:2]
    elif len(b) == 1:
        b = b + '0'
    print(float(a+'.'+b))

#拼多多##笔试题目#
全部评论
进位是不是不对,比如0.9999
点赞 回复 分享
发布于 2019-09-01 17:20
第二题怎么做的
点赞 回复 分享
发布于 2019-09-01 17:18
print('%.2f' %结果)
点赞 回复 分享
发布于 2019-09-01 17:18
我的是1.5输出成1.50就对了
点赞 回复 分享
发布于 2019-09-01 17:16

相关推荐

05-05 21:45
已编辑
广州大学 Java
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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