蓝桥杯历届真题(python B组 )


第十一届蓝桥杯大赛第二次模拟(软件类)真题

Python组

【问题描述】在计算机存储中,12.5MB是多少字节?
【答案提交】这是一 道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只 填写这个整数,填写多余的内容将无法得分。

'''
这里注意是byte不是bit,byte是字节,bit是比特。
存储单位换算关系如下
 1 Byte = 8 bit	
 1 KB= 1024 B	
 1 MB = 1024 KB	
 1 GB = 1024 MB	
 1 TB = 1024 GB
 '''

12.5 MB * 1024 * 1024 = 13107200 Byte

 

【问题描述】一个包含有2019个结点的有向图,最多包含多少条边?(不允许有重 边)

【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的 结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

'''
n个结点的有向边为: n * (n-1)
'''

2019 * (2019 - 1) = 4074342

【问题描述】将LANQJAO中的字母重新排列,可以得到不同的单词,如LANQIAO、 AAILNOQ等,注意这7个字母都要被用上,单词不一定有具体的英文意义。请问,总共 能排列如多少个不同的单词。

【答案提交】这是一道结果填空的题,你只需要算出 结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容 将无法得分。

import itertools
a = list('LANQIAO')
print(len(set(itertools.permutations(a))))

'''
2520
'''

【问题描述】由1对括号,可以组成一种合法括号序列:()。由2对括号,可以 组成两种合法括号序列:()()、(())。由4对括号组成的合法括号序列一共有多少种?

【答案提交】这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一 个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

import itertools
def jc(aa): # 检测括号是否合法函数
  a = 0
  for x in aa:
    a+= 1 if x == '(' else -1
    if a < 0: # 当a小于0时说明出现了‘)’在前面的情况
      return 0
  return 1
a = ['(',')','(',')','(',')','(',')']
b = itertools.permutations(a) # 标出所有括号组合
c = []
d = 0
for x in b:
  if jc(x) == 1:  # 检测是否合法
    if x not in c:  # 检测是否已经存在合法的格式
      c.append(x)
      d += 1  
print(d)

'''
14
'''

【问题描述】给定三个整数a,b,c,如果一个整数既不是a的整数倍也不是b的 整数倍还不是c的整数倍,则这个数称为反倍数。请问在1至n中有多少个反倍数。
【输入格式】输入的第一行包含一个整数n。第二行包含三个整数a,b,c,相 邻两个数之间用一个空格分隔。

【输出格式】输出一行包含一个整数,表示答案。
【样例输入】

30
2 3 6
【样例输出】
10
【样例说明】以下这些 数满足要求:1,5,7,11,13,17,19,23,25,29。
【评测用例规模与约定】对于40%的 评测用例,1&t;=n&t;10000。对于80%的评测用例,1&t;=n&t;=100000。

n = int(input())
a,b,c = map(int,input().split())
d = 0
for x in range(1,n):
  if x%a != 0 and x%b != 0 and x%c != 0:
    d += 1
print(d)



【问题描述】给定一个单词,请使用凯撒密码将这个单词加密。凯撒密码是一 种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即ā 变为d,b变为e,,w变为z,x变为a,y变为b,z变为c。例如,lanqiao会变成 odqtldr。

【输入格式】输入一行,包含一个单词,单词中只包含小写英文字母。

【输出格式】输出一行,表示加密后的密文。
【样例输入】langiao
【样例输出】odqtldr
【评测用例规模与约定】br>对于所有评测用例,单词中的字母个数 不超过100。

a = [x for x in input()]
for x in a:
  if 97< ord(x)+3 < 122:
    print(chr(ord(x)+3),end='')
  else:
    b = ((ord(x)+3) % 122) + 96 # 这里的96是为了让他从新开始计数
    print(chr(b), end='')

到这里我就不做了,因为我蓝桥杯比完了,这个阉割版就发出来吧,嘿嘿,别骂我。