第十二届蓝桥杯模拟赛Python组(第一期)
第一题
问题描述
如果整数a是整数b的整数倍,则称b是a的约数。
请问,有多少个正整数是2020的约数。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
'''
思路:就暴力for循环
'''
#代码
if __name__ == '__main__':
lst = []
for i in range(1,2021):
if 2020%i == 0:
lst.append(i)
print(len(lst))
#结果
12
第二题
问题描述
如果一个mp3文件占用磁盘的大小是4MB,小蓝的硬盘还剩下100GB的空间,请问他还可以放多少个这样的mp3文
件?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,写
多余的内容将无法得分。
'''
思路:1GB=1024MB
'''
#代码
if __name__ == '__main__':
print(int(100*1024//4))
#结果
25600
第三题
问题描述
一个包含2020个结点的无向图,如果图中没有自环和重边,最多包含多少条边?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写.
多余的内容将无法得分。
'''
思路:有向图的个数为无向图的两倍,有向图边为2020*2019;所以无向图2020*2019/2
'''
#代码
if __name__ == '__main__':
print(2020*2019//2)
#结果
2039190
第四题
'''
思路1:首想字符串拼接,然后len
'''
#代码
if __name__ == '__main__':
str1 = ''
for i in range(1,2021):
str1 += str(i)
print(len(str1))
#结果
6973
'''
思路2:找规律,毕竟只是求到2020,是定值。当然找到规律后就可以进行通用化处理。
1-9 每个都为1 9
10-99 每个都为2 90*2
100-999 每个都为3 900*3
1000-2020 每个都为4 1021*4
'''
#代码
if __name__ == '__main__':
print(1021*4 + 900*3 + 90*2 + 9)
#结果
6973
第五题
问题描述
在一个列a = (a[1], al[2… a[n])中,如果(ij)满足i <j且a[i]> a[j], 则称为一个逆序对。
例如: (3, 2, 2, 1)中包含6个逆序对。
请问,(87, 39, 35, 1, 99, 10, 54, 1, 46, 24, 74, 62, 49, 13,2, 80, 24, 58, 8, 14, 83, 23, 97, 85,3,2, 86, 10,71,15)中
包含多少个逆序对?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写.
多余的内容将无法得分。
'''
??疑问:[3,2,2,1]真的有6个吗?我数的是5个
思路:暴力暴力,直接比较
'''
#代码
if __name__ == '__main__':
lst = [87, 39, 35, 1, 99, 10, 54, 1, 46, 24, 74, 62, 49, 13,2, 80, 24, 58, 8, 14, 83, 23, 97, 85,3,2, 86, 10,71,15]
# lst = [3,2,2,1]
print(lst)
count = 0
for i in range(len(lst)-1):
for j in range(i+1,len(lst)):
if lst[j]<lst[i]:
count+=1
print(count)
#结果
217
第六题
问题描述
给定一个三角形的底边长度I和高度h,求三角形的面积。
输入格式
输入的第一行包含一个整数1, 表示三角形的底边长度。
第二行包含一个整数 h,表示三角形的高。
输出格式
输出一个数,表示三角形的面积。如果面积为整数,请直接输出这个整数,不带小数点。如果面积不是整数,请四舍五入保留正好一位小数。
样例输入
5
6
样例输出
15
'''
思路:题目要求咋做就咋做
(题目说明底边和高度都为整数,如果有小数也只能是一位)
'''
#代码
if __name__ == '__main__':
width = int(input())
high = int(input())
if width%2 == 0 or high%2 == 0:
print(int(width*high/2))
else:
print(width*high/2)
#结果
第七题
问题描述
小蓝正在上小学,老师要求同学们在暑假每天记日记。可是小蓝整个暑假都在玩,直到最后一天才想起要记日记。于是小蓝赶紧编了一些日记交给老师。没想到,日记很快就被老师发现了问题,原来小蓝记完8月31日的日记,竟又记了8月32日和8月33日的日记。这显然是有问题的,因为根本没有8月32日和8月33日。给定一个月份和一个日期,请问2021年有没有这一天。
输入格式
输入的第一行包含一个整数 m,表示月份。
第二行包含一个整数d,示日期。
输出格式
如果2021年有m月d日,输入yes,否则输出no。
样例输入
8
32
样例输出
no
'''
思路:题目要求咋做就咋做(注意2月以及大小月)
'''
#代码
if __name__ == '__main__':
m = int(input())
d = int(input())
if (m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12) and d <= 31:
print('yes')
elif m == 2 and d <= 28:
print('yes')
elif (m == 4 or m == 6 or m == 9 or m == 11) and d <= 30:
print('yes')
else:
print('no')
第八题
问题描述
给定一个单词,请问在单词中删除t个字母后,能得到的字典序最小的单词是什么?
输入格式
输入的第一行包含一个单词, 由大写英文字母组成。
第二行包含一个正整数t.
输出格式
输出一个单词,表示答案
样例输入
LANQIAO
3
样例输出
AIAO
数据规模和约定
对于所有评测用例,单词长度不超过100, t于单词长度。
'''
字典序是指从前到后比较两个字符串的大小的方法。首先比较第一个字符,如果不同则第一个字符较小的字符串更小,如果相同则继续比较第2个字符......如此继续,来比较整个字符串的大小。
思路:进行枚举,然后比较。
'''
#代码
a = input()
b = int(input())
while b:
d = 0
c = []
b = b - 1
for i in range(len(a)):
c.append(a[:d] + a[d + 1:])
d = d + 1
a = min(c)
print(a)
第九题
问题描述
给定一个序列a 1,a2…a n。
其中a1 <a2<… <a n。
相邻两个数之间的差(后一个数减前一个数)称为它们的间
隙。
请问序列中最大的间隙值是多少?
输入格式
输入的第一行包含一个整数 n,表示序列的长度。
第二行包含n个正整数,为给定的序列。
输出格式
输出一个整数,表示序列中最大的间隙值。
样例输入
5
1 3 8 9 12
样例输出
5
'''
思路:新建一个列表用来存放差值,然后使用max函数取出最大值。注意输入为0或1的情况
'''
#代码
if __name__ == '__main__':
num = int(input())
lst = list(map(int,input().split()))
lstCount = []
if num==0 or num==1:
print(None)
else:
for i in range(num-1):
lstCount.append(lst[i+1]-lst[i])
print(max(lstCount))
第十题
问题描述
小蓝有黄绿蓝三种颜色的小球,分别为R, G,B个。同样颜色的小球没有区别。
小蓝将这些小球从左到右排成一排,排完后,将最左边的连续同色小球个数记为t1,将接下来的连续小球个数记为t2,以此类推直到最右边的小球。
问,总共有多少总摆放小球的方案,使得t1,t2,… 为严格单调递增序列,即t1 < t2 < t3<…
输入格式
输入一行包含三个整数R, G, B.
输出格式
输出一个整数,表示答案。
样例输入
3 6 0
样例输出
3
转载:https://blog.csdn.net/qq_43710889/article/details/115499357