涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月GESP_Python打卡题目
【提交】
https://www.luogu.com.cn/problem/B3839
【问题描述】
1、 累计相加,形如:
2、利用 input()语句输入一个大于 1 的正整数;
3、观察后一项与前一项的关系;
【输入描述】
1、输入一个大于 1 的正整数,假设输入合规,不考虑不合规情景,如带小数点的数, 负数等;
2、特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所 有 input()函数不可有提示信息。
【输出描述】
输出累计相加的结果。
【样例输入1】
3【样例输出1】
10【样例输入2】
4【样例输出2】
20【样例输入3】
10【样例输出3】
220参考程序:
'''[GESP202306 一级] 累计相加https://www.luogu.com.cn/problem/B3839'''N = int(input())allTnt = 0# 保存全部序列之和subTnt = 0# 保存子序列之和for i in range(1, N+1): subTnt += i allTnt += subTntprint(allTnt)【提交】
https://www.luogu.com.cn/problem/B3841
【问题描述】
1、判断一个正整数是否为自幂数;
2、自幂数是指 位数各位数字 次方之和是本身,如 153 是 3 位数,其每位数的 3 次方之和是 153 本身,因此 153 是自幂数,1634 是 4 位数,其每位数的 4 次方之和是 1634 本身;
3、首先输入一个整数 表示随后有 行每行有一个整数,输出每个整数是否为自幂数,如是则输出 T,否则 F。
【输入描述】
1、输入正整数 。不考虑输入不合规情形如负数、负整数、零或其他字符串等;
2、从第 2 行开始,输入 行每行一个正整数;
3、特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有input()函数不可有提示信息。
【输出描述】
1、输出对应正整数是否为自幂数,如是则输出一个英文字母 T,否则一个英文字母F;
2、特别提示:注意输出字母为大写,小写将判为错误,前后没有空格等。
【样例输入1】
3152111153【样例输出1】
FFT【样例输入2】
5820854883488593477123455432【样例输出2】
TTTFF参考程序:
'''[GESP202306 二级] 自幂数判断https://www.luogu.com.cn/problem/B3841'''N = int(input()) # 输入数据的数量for i in range(N): M = int(input()) # 输入判断的数 howDigit = 0# 获得输入整数的位数 tmp = Mwhile tmp != 0: howDigit += 1 tmp //= 10# 执行完本步,M 将减少 1 位 tnt = 0 tmp = M# 计算各位幂次方的和while tmp != 0: tnt = tnt + (tmp % 10) ** howDigit tmp //= 10# 判断是否为自幂数if tnt == M: print("T")else: print("F")【提交】
https://www.luogu.com.cn/problem/B3867
【问题描述】
小杨共有个储蓄罐,编号从0到。从第1天开始,小杨每天都会往存钱罐里存钱。具体来说,第天他会挑选一个存钱罐 ,并存入元钱。过了天后,他已经忘记每个储蓄罐里都存了多少钱了,你能帮帮他吗?
【输入描述】
输入2行,第一行两个整数;第二行个整数,其中第个整数为(保证)。
每行的各个整数之间用单个空格分隔。
保证;
【输出描述】
输出个用单个空格隔开的整数,其中第个整数表示编号为的存钱罐中有多少钱()。
【特别提示】
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
【样例输入1】
2 30 1 0【样例输出1】
4 2【样例解释1】
小杨在第1天、第2天、第3天分别向0号、1号、0号存钱罐存了1元钱、2元钱、3元钱,因此0号存钱罐有1+3=4元钱,而1号存钱罐有2元钱。
【样例输入2】
3 50 0 0 2 0【样例输出2】
11 0 4参考程序:
'''[GESP202309 三级] 小杨的储蓄https://www.luogu.com.cn/problem/B3867'''N, D = map(int, input().split())lst = list(map(int, input().split()))arr = [0] * Nfor i in range(D): arr[lst[i]] += i + 1print(" ".join(map(str,arr)))【提交】
https://www.luogu.com.cn/problem/B3927
【问题描述】
在遥远的星球,有两个国家 A 国和 B 国,他们使用着不同的语言:A 语言和 B 语言。小杨是 B 国的翻译官,他的工作是将 A 语言的文章翻译成 B 语言的文章。
为了顺利完成工作,小杨制作了一本字典,里面记录了 个 A 语言单词对应的 B 语言单词,巧合的是,这些单词都由地球上的 26 个小写英文字母组成。
小杨希望你写一个程序,帮助他根据这本字典翻译一段 A 语言文章。这段文章由标点符号 !()-[]{}\|;:'",./?<> 和一些 A 语言单词构成,每个单词之间必定由至少一个标点符号分割,你的程序需要把这段话中的所有 A 语言单词替换成它的 B 语言翻译。特别地,如果遇到不在字典中的单词,请使用大写 UNK 来替换它。
例如,小杨的字典中包含 2 个 A 语言单词 abc 和 d,它们的 B 语言翻译分别为 a 和 def,那么我们可以把 A 语言文章 abc.d.d.abc.abcd. 翻译成 B 语言文章 a.def.def.a.UNK.,其中,单词 abcd 不在词典内,因此我们需要使用 UNK 来替换它。
【输入描述】
第一行一个整数 ,表示词典中的条目数。保证 。
接下来 行,每行两个用单个空格隔开的字符串 ,分别表示字典中的一个 A 语言单词以及它对应的 B 语言翻译。保证所有 不重复;保证 和 的长度不超过 。
最后一行一个字符串 ,表示需要翻译的 A 语言文章。保证字符串 的长度不超过 ,保证字符串 只包含小写字母以及标点符号 !()-[]{}\|;:'",./?<>。
【输出描述】
输出一行,表示翻译后的结果。
【特别提醒】
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
【样例输入1】
2abc ad defabc.d.d.abc.abcd.【样例输出1】
a.def.def.a.UNK.【样例输入2】
3abc ad defabcd xxxxabc,(d)d!-abc?abcd【样例输出2】
a,(def)def!-a?xxxx【样例输入3】
1abcdefghij klmnopqrst!()-[]{}\|;:'",./?<>abcdefghijklmnopqrstuvwxyz【样例输出3】
!()-[]{}\|;:'",./?<>UNK参考程序:
'''[GESP202312 四级] 小杨的字典https://www.luogu.com.cn/problem/B3927'''n = int(input())d = {}for i in range(n): k, v = input().split(' ') d[k] = vpunc = '!()-[]{}\|;:\'",./?<>'UNK = "UNK"st = input()curr_token = ""ans = ""for ch in st:if ch in punc:if curr_token in d: ans += d[curr_token]elif curr_token: ans += UNK curr_token = "" ans += chelse: curr_token += chif curr_token in d: ans += d[curr_token]elif curr_token: ans += UNKprint(ans)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
