涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月GESP_Python打卡题目
【提交】
https://www.luogu.com.cn/problem/B4410
【问题描述】
金字塔由 层石块垒成。从塔底向上,每层依次需要 块石块。请问搭建金字塔总共需要多少块石块?
【输入描述】
一行,一个正整数 ,表示金字塔的层数。
【输出描述】
一行,一个正整数,表示搭建金字塔所需的石块数量。
【样例输入1】
2【样例输出1】
5【样例输入2】
5【样例输出2】
55【提示】
对于所有测试点,保证 。
参考程序:
'''[GESP202509 一级] 金字塔https://www.luogu.com.cn/problem/B4410'''n = int(input())i = 1ans = 0while i <= n: ans += i * i i += 1print(ans)【提交】
https://www.luogu.com.cn/problem/B4065
【问题描述】
小杨有 个正整数,小杨想知道这些正整数的数位和中最大值是多少。
“数位和”指的是一个数字中所有数位的和。
例如:
对于数字 ,它的各个数位分别是 , , , , 。将这些数位相加,得到:
因此, 的数位和是 。
【输入描述】
第一行包含一个正整数 ,代表正整数个数。
之后 行,每行包含一个正整数。
【输出描述】
输出这些正整数的数位和的最大值。
【样例输入1】
3168110【样例输出1】
9【数据范围】
对于全部数据,保证有 ,每个正整数不超过 。
参考程序:
'''[GESP202412 二级] 数位和https://www.luogu.com.cn/problem/B4065'''n = int(input())result = 0for i in range(n): x = int(input()) k = 0while x > 0: k += x % 10 x = x // 10if k > result: result = kprint(result)【提交】
https://www.luogu.com.cn/problem/B4066
【问题描述】
小杨有一个包含 个数字的序列 ,即 ,他想将其中大于 的数字都替换为序列的最大值,将其中小于 的数字都替换为序列的最小值,请你帮他计算出替换后的序列。
【输入描述】
第一行包含两个正整数 ,含义如题面所示。
第二行包含 个数字,代表序列 。
【输出描述】
输出 个正整数,代表替换后的结果。
【样例输入1】
5 0-2 -1 0 1 2【样例输出1】
-2 -2 0 2 2【数据范围】
对于全部数据,保证有 , 。
参考程序:
'''GESP202412 三级 数字替换https://www.luogu.com.cn/problem/B4066'''n, k = map(int, input().split())lst = list(map(int, input().split()))max_value = max(lst)min_value = min(lst)for i in range(n):if lst[i] > k: lst[i] = max_valueelif lst[i] < k: lst[i] = min_valuelst = list(map(str, lst))print(" ".join(lst))【提交】
https://www.luogu.com.cn/problem/B4041
【问题描述】
小杨有一个包含 个正整数的序列 。
小杨计划对序列进行多次升序排序,每次升序排序小杨会选择一个区间 ()并对区间内所有数字,即 进行升序排序。每次升序排序会在上一次升序排序的结果上进行。
小杨想请你计算出多次升序排序后的序列。
【输入描述】
第一行包含一个正整数 ,含义如题面所示。
第二行包含 个正整数 ,代表序列。
第三行包含一个正整数 ,代表排序次数。
之后 行,每行包含两个正整数 ,代表将区间 内所有数字进行升序排序。
【输出描述】
输出一行包含 个正整数,代表多次升序排序后的序列。
【样例输入1】
53 4 5 2 134 53 41 3【样例输出1】
1 3 4 5 2【提示】
对于全部数据,保证有 。
参考程序:
''' [GESP202409 四级] 区间排序https://www.luogu.com.cn/problem/B4041'''n = int(input())a = list(map(int, input().split()))q = int(input())for _ in range(q): l, r = map(int, input().split()) x = a[l - 1: r] a[l - 1:r] = sorted(x)r = " ".join(list(map(str, a)))print(r)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
