网站大量收购闲置独家精品文档,联系QQ:2885784924

第十四届蓝桥杯模拟赛大学B组 Python.doc

第十四届蓝桥杯模拟赛大学B组 Python.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第十四届蓝桥杯模拟赛大学B组Python

第一题

填空题

请找到一个大于2022的最小数,这个数转换成十六进制之后,所有的数位(不含前导0)都为字母(A到F)。

请将这个数的十进制形式作为答案提交。

刚开始没看懂什么意思,先使用下方语句得到2022的十六进制是0x7E6,难么比它大的数且不含数字的16进制数为AAA,将答案2730填入空中即可

print(hex(2022))

print(int(0xAAA))

第二题

填空题

在Excel中,列的名称使用英文字母的组合。

前26列用一个字母,依次为A到Z,接下来26*26列使用两个字母的组合,依次为AA到ZZ。

请问第2022列的名称是什么?

解法1:这题很浅显了,其实就是计算出2022的27进制是多少?填空题不考虑时间复杂度了,直接使用暴力算法。结果是BYT

foriinrange(26):

forjinrange(26):

forkinrange(26):

if26*26*i+26*j+k==2022:

s=chr(i+96)+chr(j+96)+chr(k+96)

break

print(s.upper())

解法2:它已经告诉我们用的是excel了,那我们就听它的用excel来做吧!毕竟填空题讲究的就是不择手段。

需要值得注意的是我用的xls格式的只能拖动到256列,而xlsx格式的表格似乎可以拖动到∞行。

BYR BYS BYT

2020 2021 2022

第三题

对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。

请问从1900年1月1日至9999年12月31日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。

例如,2022年11月13日满足要求,因为2+0+2+2=(1+1)+(1+3)。

请提交满足条件的日期的总数量。

看到诸如此类的日期题,立刻想到的是python的datetime库,它属于python内置的库,并不属于第三方库,我们在算法比赛中是可以调用的。

最后算出来的结果是70910,使用到的算法比较暴力,需要等大搞一分钟程序才会计算出最终结果,填空题就不纠结这么多了。

importdatetime

defcheck(time):

year,month,day=time.split(-)

num1,num2,num3=0,0,0

foriinyear:

num1+=int(i)

foriinmonth:

num2+=int(i)

foriinday:

num3+=int(i)

ifnum1==num2+num3:

returnTrue

else:

returnFalse

num=0

start=datetime.date(1900,1,1)

end=datetime.date(9999,12,31)

whilestart=end:

ifcheck(str(start)):

num+=1

ifstart==end:

break

start+=datetime.timedelta(days=1)

print(num)#答案是70910

第四题

小蓝有30个数,分别为:99,22,51,63,72,61,20,88,40,21,63,30,11,18,99,12,93,16,7,53,64,9,28,84,34,96,52,82,51,77。

小蓝可以在这些数中取出两个序号不同的数,共有30*29/2=435种取法。

请问这435种取法中,有多少种取法取出的两个数的乘积大于等于2022。

就是用一个两层循环使得数字两两之间相乘就可以了,需要注意的是要排除自己乘自己的情况。

答案是189

ans=0

li=[99,22,51,63,72,61,20,88,40,21,63,30,11,18,99,12,93,16,7,53,64,9,28,84,34,96,52,82,51,

文档评论(0)

如此醉 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档