python解决牛某网的编程题

题目:

小易参加了一次考试,这场包含 n 个题目,第 i 个题目的分数是 si 。

如果小易第 i 题目回答正确,他将得到 Si 分,否则该题目他将得到 0 分。

最终的考试得分是所有题目得分的总和。

由于阅卷老师很讨厌数字 5,在阅卷时如果一个学生的考试总分中含有数字 5,那么阅卷老师将气愤地给他 0 分。

那么小易考试的最高得分是多少?

输入描述:

输入的第一行是正整数 n(1<=n<=100) ,代表这场考试的题目数。

接下一行含有n个正整数 s1,s2,s3....sn (1<= si <=200)

输出描述:

输出一个整数,代表小易考试的最高得分。

输入例子

5
5 15 5 15 5

输出例子

40

解题思路:

由于所求的是最高分,且限制条件为成绩不得带5

所以先假设全对分数求和,即为无限制条件下的最高分,然后判断成绩是否带5,有5就减掉最低分,减一次不一定能得到答案,所以需要对分数列表进行排序。

代码实现:

num = int(input())            #此处默认num=len(li) 没有做错误退出 大家需要注意
li = input().split()          #获取分值列表
li = sorted(list(map(int,li)))#将分值列表进行排序
S = 0
for i in range(num):          #此处累加 也可以用sum()函数
    S += li[i]

if str(S).count('5')!=0:      #判断成绩是否含‘5’用count函数
    for i in range(num):
        S = S-li[i]#减去最低分
        if str(S).count('5') == 0:#成绩不带5就break
            break
print(S)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小夫(学习版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值