首页 > Python资料 博客日记

全国青少年信息素养大赛 2023年Python复赛真题

2024-07-31 16:00:05Python资料围观60

文章全国青少年信息素养大赛 2023年Python复赛真题分享给大家,欢迎收藏Python资料网,专注分享技术知识

Python智能算法挑战复赛⼩学组
(总共 4 道题)

1. 捡⽯头
【题⽬描述】
⼩强在河边捡了 2 块漂亮的⽯头,他想再捡两块⽯头,让这 4 块⽯头的质量正好 为 30 ⽄,并
块⽯头的质量之间的数字,请编程 输出第 3 块和第 4 块⽯头的质量。注:每个⽯头的重量都
输出 0 0。
【输⼊格式】
输⼊ 2 个数,数与数之间以空格间隔,表示 2 块⽯头的质量。
【输出格式】
输出表示第 3、4 块⽯头的质量的所有可能结果,每块⽯头质量的数字⽤空格隔 开。多组结
分⾏输出。
【样例输⼊】(测试数据不包含本样例)
1 11
【样例输出】
8 10
9 9

2. 判断数字出现了⼏次

【题⽬描述】
给定⼀个正整数n,判断从 1 到这个数本身的所有数中,⼀共出现了多少次数字 k。
【输⼊格式】
输⼊共 1 ⾏,包括⼀个正整数 n 和⼀个正整数 k。(0<n<32767,0<k<10) 【输出格式】
输出共 1 ⾏,⼀个整数,表示 1 到 n 之间的所有数 (包括n),⼀共出现了⼏次k。 【样例输
13 3
【样例输出】
2

3. 滑雪板打包问题
【题⽬描述】
⼀家新开业的滑雪场,需要采购不同规格的滑雪板,每个滑雪板的⻓度是不固定 的,现在需要把排列好
每次快递的总重 量是有限制的,不能超过重量 G。只要每次打包的重量不超过 G,多个滑雪板可以摞
个⽊板进⾏固定。假设,给出排列好的 每个滑雪板的重量 Gi ,和⻓度 Li ,请计算需要最少多⻓的⽊板
【输⼊格式】
输⼊的第⼀⾏有两个数字,⼀个是滑雪板的个数,⼀个是包裹总重量。 以下滑雪板个数⾏,每⾏的第⼀
【输出格式】
输出需要最少的⽊板的总⻓度。注:每次打包需要 2 个⽊板。
【样例输⼊】(测试数据不包含本样例)
5 5
2 1
1 2
# 计算从 1 到 n 之间⼀共出现了⼏次数字 k
occurrences = count_occurrences(n, k)
print(occurrences)
1 3
2 3
2 2
【样例输出】
10

4. 统计考试成绩
【题⽬描述】
期末考试结束了,⽼师要统计班⾥学⽣的考试成绩分布,已知每个同学的考试 成绩为在 0 到 100 分之
成绩,计算出在 平均成绩 (成绩平均值向下取整) 之上的 (⼤于等于平均成绩) 和在平均成绩之下 的 (⼩
【输⼊格式】
第⼀⾏ n 为学⽣成绩个数,0<n<50。
第⼆⾏,由空格隔开的每个同学的成绩,为 1 到 100 间的整数。 【输出格式】
两个整数,由空格隔开,为平均分以上⼈数和平均分以下⼈数。 【样例输⼊】(测试数据不包含本样例
12
100 80 93 66 73 50 96 100 84 47 97 71
【样例输出】

答案解析:
要解决这个问题,我们可以按照以下步骤进⾏:
1. ⾸先,获取学⽣成绩的个数 n。
2. 然后,输⼊每个同学的成绩,并计算总分。
3. 计算平均分(向下取整)。
4. 遍历每个同学的成绩,统计平均分以上和平均分以下的⼈数。
5. 输出平均分以上和平均分以下的⼈数。
下⾯是⼀个解决该问题的 Python 代码示例:
import math
# 输⼊学⽣成绩个数
n = int(input())
# 输⼊每个同学的成绩,并计算总分
scores = list(map(int, input().split()))
total_score = sum(scores)
# 计算平均分(向下取整)
average_score = math.floor(total_score / n)
在这个示例中,我们⾸先输⼊学⽣成绩的个数 n,并将每个同学的成绩存储在列表 scores 中。然后,
接下来,我们计算平均分(向下取整),使⽤ math.floor 函数来实现向下取整。
然后,我们遍历每个同学的成绩,统计平均分以上和平均分以下的⼈数,并将结果存储在变
量 above_average_count 和 below_average_count 中。
最后,我们输出平均分以上和平均分以下的⼈数。
请注意,以上示例代码是使⽤ Python 编写的。如果您希望在其他编程语⾔中实现相同的功能,请根据
# 统计平均分以上和平均分以下的⼈数
above_average_count = 0
below_average_count = 0
for score in scores:
 if score >= average_score:
 above_average_count += 1
 else:
 below_average_count += 1
# 输出平均分以上和平均分以下的⼈数
print(above_average_count, below_average_count)

更多青少年编程比赛、考级真题,可登录模拟系统在线测试(支持PC、移动端)免费试用

少儿编程在线评测考试系统_码培编程


版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐