第十二屆藍橋杯模擬賽Python組(第一期)
文章目錄
- 第十二屆藍橋杯模擬賽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://www.uj5u.com/qita/274058.html
標籤:其他
上一篇:環科跨考數一英一408經驗帖
下一篇:作業系統復習筆記--第三章 行程
