涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:八月GESP_Python打卡题目 “Python一级”备考指南 “Python二级”备考指南 “Python三级”备考指南 “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/B4498
【问题描述】
输入一个正整数 ,你需要绘制一个 行 列的正方形,绘制规则如下:
+ 绘制;- 绘制;| 绘制;* 绘制。【输入描述】
一行,一个正整数 。
【输出描述】
输出共 行,表示对应的正方形。
【样例输入1】
5【样例输出1】
+---+|***||***||***|+---+【数据范围】
保证 。
参考程序:
'''[GESP202603 二级] 画画https://www.luogu.com.cn/problem/B4498'''n = int(input())for i in range(n):for j in range(n):if i == 0or i == n - 1:# 第一行或最后一行if j == 0or j == n - 1: print('+', end="")else: print('-', end="")else:# 中间行if j == 0or j == n - 1: print('|', end="")else: print('*', end="") print()【提交】
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/B4361
【问题描述】
体育课上有 名同学排成一队,从前往后数第 位同学的身高为 ,体重为 。目前排成的队伍看起来参差不齐,老师希望同学们能按照身高从高到低的顺序排队,如果身高相同则按照体重从重到轻排序。在调整队伍时,每次只能交换相邻两位同学的位置。老师想知道,最少需要多少次交换操作,才能将队伍调整成目标顺序。
【输入描述】
第一行,一个正整数 ,表示队伍人数。
接下来 行,每行两个正整数 和 ,分别表示第 位同学的身高和体重。
【输出描述】
输出一行,一个整数,表示最少需要的交换次数。
【样例输入1】
51 603 702 804 554 50【样例输出1】
8【样例输入2】
54 04 02 03 01 0【样例输出2】
1【数据范围】
对于所有测试点,保证 ,。
参考程序:
注:官方给的参考答案,在洛谷提交也超时了。
'''[GESP202506 四级] 排序https://www.luogu.com.cn/problem/B4361'''n = int(input())lst = []for _ in range(n): s = tuple(map(int, input().split())) lst.append(s)cnt = 0for i in range(n - 1): flag = Truefor j in range(len(lst) - 1 - i):if lst[j] < lst[j + 1]: lst[j], lst[j + 1] = lst[j + 1], lst[j] cnt += 1 flag = Falseif flag isTrue:breakprint(cnt)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
