涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月GESP_Python打卡题目
【提交】
https://www.luogu.com.cn/problem/B4409
【问题描述】
商店正在开展促销活动,给出了两种方案的折扣优惠。第一种方案是购物满 元减 元;第二种方案是直接打 折,也就是说价格变为原先的 。这里的 均是正整数,并且 ,。
需要注意的是,第一种方案中满减优惠只能使用一次。例如购物满 元减 元时,若挑选了价格总和为 元的物品,只能减免 元,需要支付 元。
小明在商店挑选了价格总和为 元的物品,结账时只能使用一种优惠方案。小明最少需要支付多少钱呢?
【输入描述】
一行,四个正整数 ,含义见题目描述。
【输出描述】
一行,一个小数,表示小明最少需要支付多少钱,保留两位小数。
【样例输入1】
8 7 9 10【样例输出1】
3.00【样例输入2】
8 7 2 11【样例输出2】
2.20【提示】
对于所有测试点,保证 ,,。
参考程序:
'''[GESP202509 一级] 商店折扣https://www.luogu.com.cn/problem/B4409'''x = int(input())y = int(input())n = int(input())p = int(input())c = p * n / 10if p >= x:if p - y < c: c = p - yprint("%.2f" % c)【提交】
https://www.luogu.com.cn/problem/B4356
【问题描述】
直角三角形有两条直角边与一条斜边,设两条直角边的长度分别为 ,则直角三角形的面积为 。
请你计算当直角边长 均取不超过 的正整数时,有多少个不同的面积为整数的直角三角形。直角边长分别为 和 的两个直角三角形相同,当且仅当 或者 。
【输入描述】
一行,一个整数 ,表示直角边长的最大值。
【输出描述】
输出一行,一个整数,表示不同的直角三角形数量。
【样例输入1】
3【样例输出1】
3【样例输入2】
5【样例输出2】
9【数据范围】
对于所有测试点,保证 。
参考程序:
'''[GESP202506 二级] 数三角形https://www.luogu.com.cn/problem/B4356'''cnt = 0n = int(input())for a in range(1,n+1):for b in range(a,n+1):if a*b%2==0: cnt+=1print(cnt)【提交】
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/B3958
【问题描述】
对于两个字符串A和B,如果A可以通过删除一个字符,或插入一个字符,或修改一个字符变成B,那么我们说A和B是相似的。
比如 apple 可以通过插入一个字符变成 applee ,可以通过删除一个字符变成 appe ,也可以通过修改一个字符变成 bpple ,因此 apple 和 applee 、 appe 、 bpple 都是相似的。但 applee 并不能通过任意一个操作变成bpple ,因此它们并不相似。
特别地,完全相同的两个字符串也是相似的。
给定T组A,B,请你分别判断他们是否相似。
【输入描述】
第一行一个正整数T。
接下来T行,每行两个用空格隔开的字符串A和B。
保证,A,B的长度不超过50。保证A和B只包含小写字母。
【输出描述】
输出T行,对于每组A,B,如果它们相似,则输出 similar ,否则输出 not similar 。
【特别提醒】
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
【样例输入1】
5apple appleeapple appeapple bppleapplee bppleapple apple【样例输出1】
similarsimilarsimilarnot similarsimilar参考程序:
'''[GESP202403 四级] 相似字符串https://www.luogu.com.cn/problem/B3958'''defcheck01(s1, s2):""" 长度差1的情况,s1比s2短 """ ls1 = len(s1) i, j, cnt = 0, 0, 0while i < ls1:if s1[i] != s2[j]: j += 1 cnt += 1if cnt > 1:return "not similar"else: i += 1 j += 1return "similar"defcheck02(s1, s2):""" 长度相等的情况 """ cnt = 0 ls1 = len(s1)for i in range(ls1):if s1[i] != s2[i]: cnt += 1if cnt == 0 or cnt == 1:return "similar"return "not similar"T = int(input())for _ in range(T): a, b = input().split() la, lb = len(a), len(b)if la == lb: print(check02(a, b))elif la - lb == 1: print(check01(b, a))elif la - lb == -1: print(check01(a, b))else: print("not similar")青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
