蓝桥杯青少组STEMA测评(2021年3月)Python编程题解


代码:

· 

· 

n = int(input())print(100*n)


代码:

· 

· 

· 

· 

· 

n = int(input())if n % 5 == 0:    print('Y')else:    print('N')

 

代码:

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

· 

IQ = int(input())if IQ >= 140:    print('A')elif IQ >= 120:    print('B')elif IQ >= 110:    print('C')elif IQ >= 90:    print('D')elif IQ >= 80:    print('E')elif IQ >= 70:    print('F')else:    print('G')


代码:

· 

· 

· 

· 

· 

· 

· 

· 

· 

nums = list(map(int,input().split(',')))n = len(nums)M = int(input())count = 0for i in range(n-1):    for j in range(i+1,n):        if nums[i] + nums[j] == M:            count += 1print(count)

解说:从一个长度是n的列表中,不重复选两个元素的标准二重循环语句如下。

· 

· 

for i in range(n-1):    for j in range(i+1,n):


分析:如果新病毒与旧病毒一样,每分钟复制1次,那么总数是一个等比数列2^n(n=0,1,2,……),但新病毒要过5分钟才开始复制,因此总数不符合等比数列要求。为此,我们要建一个4元素列表记录非复制期的病毒数量,开始第4个元素是1,从第二分钟开始复制循环,时间到后复制期数量和非复制期数量和即是病毒总数。图解如下:

 

 

 

 

 

 

 

 

 

 

代码:

· 

· 

· 

· 

· 

· 

· 

N = int(input())lst = [0,0,0,1] #不可复制数量列表,第1分钟的病毒粒子是从无到有cn = 0  #可复制数量for i in range(1, N):  #从第二分钟开始复制循环    cn += lst.pop(0)   #弹出不可复制数量列表第一个元素加到可复制数量    lst.append(cn)     #可复制数量复制一份加到不可复制数量列表后面print(sum(lst)+cn)