image

编辑人: 人逝花落空

calendar2025-07-29

message1

visits1003

第12届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2020年8月真题参考答案

一、实操题

1、编程实现:

分别输入两个正整数M,N,输出M到N之间(含M,N)所有可被7整除,但不是5的倍数的数字,并以逗号分隔按顺序打印在一行。

输入描述:

分别输入两个正整数M,N

输出描述:

输出M到N之间(含M,N)所有可被7整除,但不是5的倍数的数字,并以逗号分隔按顺序打印在一行


样例输入:

100
147

样例输出:

112,119,126,133,147

参考答案:br />```pythonM, N = map(int, input().split())result = [str(i) for i in range(M, N+1) if i % 7 == 0 and i % 5 != 0]print(','.join(result))```


2、编程实现:

输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数并输出。

输入描述:

输入一行字符

输出描述:

按英文字母、空格、数字和其它字符的顺序输出其对应的个数


样例输入:

a1 b2 c d4 !!! 5

样例输出:

4
5
4
3

参考答案:br />```pythondef count_chars(s):eng_count = 0space_count = 0digit_count = 0other_count = 0for char in s:if char.isalpha():eng_count += 1elif char.isspace():space_count += 1elif char.isdigit():digit_count += 1else:other_count += 1return eng_count, space_count, digit_count, other_counts = input()eng, space, digit, other = count_chars(s)print(eng)print(space)print(digit)print(other)```


3、编程实现:

有n个人围成一个圈,按顺序排好号。然后从第一个人开始报数(从1到3报数),报到3的人退出圈子,然后继续从1到3报数,直到最后留下一个人游戏结束,问最后留下的是原来第几号。

输入描述:

输入一个正整数n

输出描述:

输出最后留下的是原来的第几号


样例输入:

5

样例输出:

4

参考答案:```pythondef last_man_standing(n):if n == 1:return 1people = list(range(1, n+1))index = 0while len(people) > 1:index = (index + 2) % len(people)del(people[index])return people[0]print(last_man_standing(5)) # 输出: 4```


4、编程实现:

计算某个电梯的用电量。

电梯可到达最低楼层为地下 3 层(-3),最高为地上 12 层(12),中间没有 0 层;

电梯向上运行时每上升 1 层消耗 1 单位电量,向下运行时每下降 1 层消耗 0.3 单位电量;

请你通过输入的某段时间内电梯停过的楼层顺序,计算电梯消耗了多少单位电量。

输入描述:

N 个数字(2<=N<=10),数字间以逗号分隔,代表电梯停过的楼层[-3,12];

输出描述:

电梯消耗的单位电量数;


样例输入:

1,11,1

样例输出:

13.0

参考答案:br />根据题目描述,我们需要计算电梯消耗的单位电量数。首先,我们需要根据输入的楼层顺序,计算电梯上升和下降的层数。对于每个楼层,我们可以计算电梯上升或下降的层数,然后根据题目中给出的规则计算电量消耗。具体步骤如下:1. 初始化变量total_electricity为0,表示总电量消耗。2. 遍历输入的楼层顺序,对于每个楼层:* 如果当前楼层比前一个楼层高,则电梯上升了(当前楼层-前一个楼层)层,总电量消耗增加(当前楼层-前一个楼层)单位。* 如果当前楼层比前一个楼层低,则电梯下降了(前一个楼层-当前楼层)层,总电量消耗增加0.3*(前一个楼层-当前楼层)单位。最后,返回总电量消耗。


5、提示信息:

在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数的数,被称为素数,又叫质数。

超级素数是指一个素数,每去掉最后面的一个数字,总能保证剩下的数依然为素数。

比如:“373”就是一个超级素数,去掉个位的“3”后,“37”依然是素数;继续去掉“37”个位的 “7”后,“3”还是素数。

编程实现:

输入一个正整数 n (10≤n≤108),输出所有小于等于n的超级素数的个数。

输入描述:

输入一个正整数 n (10≤n≤108)

输出描述:

输出所有小于等于 n 的超级素数的个数


样例输入:

30

样例输出:

6


样例输入:

50

样例输出:

8


样例输入:

100

样例输出:

13


样例输入:

500

样例输出:

21


样例输入:

1000

样例输出:

27


样例输入:

3200

样例输出:

34

参考答案:```pythonimport mathdef is_prime(n):if n < 2:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn Truedef is_super_prime(n):while n % 10 != 0:n = int(str(n)[:-1])if not is_prime(n):return Falsereturn Truedef count_super_primes(n):count = 0for i in range(2, n + 1):if is_super_prime(i):count += 1return countn = int(input())print(count_super_primes(n))```


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:第12届蓝桥杯Python青少组中/高级组选拔赛(STEMA)2020年8月真题参考答案

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share