蓝桥杯刷题(python) 组队、数列求值、特别数的和、刷题统计、练习

        本文记录蓝桥杯的刷题历程。每日五题,题目来源于蓝桥杯官网上的题库,今日为604组队、600数列求值、191特别数的和、2098刷题统计和2376练习。

组队

题目描述

        本题为填空题,只需要算出结果,在代码中使用输出语句将所填结果输出即可。

        作为篮球队教练,你需要从以下名单中选出1号位至五号位各一名球员,组成球队的首发阵容。每位球员担任1号位至5号位时的评分如下表所示。请你计算首发阵容1号位至5号位的评分之和最大可能是多少?

代码展示

import os
import sys

# 请在此输入您的代码
'''
s1 = [97,92, 0, 0,89,82, 0, 0, 0,95, 0, 0,94, 0, 0, 0,98,93, 0, 0]
s2 = [90,85, 0, 0,83,86, 0,97, 0,99, 0, 0,91,83, 0, 0,83,87, 0,99]
s3 = [ 0,96, 0, 0,97, 0, 0,96,89, 0,96, 0, 0,87,98, 0,99,92, 0,96]
s4 = [ 0, 0, 0,80, 0, 0,87, 0, 0, 0,97,93, 0, 0,97,93,98,96,89,95]
s5 = [ 0, 0,93,86, 0, 0,90, 0, 0, 0, 0,98, 0, 0,98,86,81,98,92,81]
s = []
for i in range(20):
    for j in range(20):
        for k in range(20):
            for l in range(20):
                for e in range(20):
                    if len(set([i,j,k,l,e])) == 5:
                        s.append(s1[i]+s2[j]+s3[k]+s4[l]+s5[e])
print(max(s))
'''
print(490)

 代码分析

        首先将五个位置20个球员的得分赋给s1,s2,s3,s4,s5。然后设置一个新列表s,使用其进行遍历。之所以要设置len(set([i,j,k,l,e]))=5,是为了确保选中的球员没有重复值。对满足条件的球员计算评分和,将其存储于s内,之后print输出s中各元素的最大值。结果为490.

数列求值

题目描述

        本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

        给定数列1,1,1,3,5,9,17,...,从第4项开始,每项都是前3项的和。求第20190324项的最后四位数字。

代码展示

a, b, c, d = 1, 1, 1, 0
for i in range(4, 20190325):
    d = (a + b + c) % 10000
    a, b, c = b, c, d
print(d)

代码分析

        由于本题仅需要求后四位数字,故对前三项的和用10000取余,保留最后四位数字,同时简化运算。之后,更新前三项。即语句a,b,c=b,c,d.

特别数的和

题目描述

        小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1,2,9,10至32,39和40,共28个,他们的和是574.

        请问,在1到n中,所有这样的数和是多少?

代码展示

import os
import sys

# 请在此输入您的代码
# 请在此输入您的代码
count=0
n=int(input())
s=[]
for i in range(1,n+1):
    if "2" in str(i) or "0" in str(i) or "1" in str(i) or "9" in str(i):
        s.append(i)
print(sum(s))

代码分析

        首先定义一个n用于存储输入,一个空数组用于存储数位中含有2或0或1或9的数。对1至n进行循环找数,由于range函数左边能取到,右边不能取到,故为range(1,n+1)。之后就判断是否含有2,0,1,9了。用语句"2" in str(i)即可判断。最终,输出满足条件的数的和。

刷题统计

问题描述

        小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做a到题目,周六和周日每天做b道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于n题。

输入及输出格式

        输入一行包含三个整数a,b和n。输出一个整数代表天数。例如,输入10,20,99.则输出8.

代码展示

import os
import sys

# 请在此输入您的代码
s=input().split()
a=int(s[0])#周一至周五
b=int(s[1])#周六、周日
n=int(s[2])#天数
week=5*a+b*2#一周
w=n//week  #需要多少个整周
d=n-week*w#剩余天数
if d<=5*a:
    s=d%a
    if s==0:
        print(w*7+d//a)
    else:
        print(w*7+d//a+1)
elif d>5*a:
    d=d-5*a
    s=d%a
    if s==0:
        print(w*7+5+d//a)
    else:
        print(w*7+d//a+5+1)

代码分析

        首先存储输入,用a,b,n分别表示。进而判断需要多少个整周,然后计算整周后剩余多少个题。分剩余题目是否在周一至周五能刷完。若能,则进一步判断需要多少天,若不能,则减去五个整天乘以周一至周五每天刷题量,在对减去后的剩余题目判断需要周六、周日多久。从而得出答案。

练习

题目描述

        小蓝在蓝桥杯练习系统上做题。做到一道题,他编写好程序,在自己的电脑上尝试了题目中提供的几个样例,全部得到了正确的结果,可是当他将自己的程序提交到练习系统上时,却得了0分,这种情况可能的原因是什么?请在以下选项中选择所有可能导致这种情况的原因。

        A.题目中的样例一般比较小,在评测的时候可能使用的评测样例比较大,小蓝的程序虽然在小样例能得到解,对于大一些的评测用例可能速度太慢,超过了题目要求的时间限制。

        B.小蓝的内存使用过多,虽然在自己的电脑上运行正确,可是在评测的内存限制下无法运行。

        C.小蓝的程序有考虑不足之处,题目中的样例比较小,小蓝的程序恰好能得到对应的结果,可是当评测用例比较复杂时,小蓝的程序无法得到正确的结果。

答案提交

        这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个由大写字母组成的字符串,按字母顺序给出所选择的选项,在提交答案时只填写这个字符串,填写多余的内容将无法得分。例如,如果选项全部正确,请填写答案ABC。

代码展示

import os
import sys
print("ABC")

代码分析

        仔细分析可以发现,ABC三个选项都对。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值