涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试 活动内容:提供不同等级的真题供小朋友们选择练习 备考建议:根据自己备考的等级选择相应题目 附加价值:可作为白名单比赛的备考训练 本月打卡:本月GESP_Python打卡题目
【提交】
https://www.luogu.com.cn/problem/B3952
【问题描述】
小杨同学积攒了一部分零用钱想要用来购买书籍,已知一本书的单价是13元,请根据小杨零用钱的金额,编写程序计算最多可以购买多少本书,还剩多少零用钱。
【输入描述】
输入一个正整数 ,表示小杨拥有的零用钱数。
【输出描述】
输出包含两行,第一行,购买图书的本书,第二行剩余的零用钱数。
【样例输入1】
100【样例输出1】
79【样例输入2】
199【样例输出2】
154对于全部数据,保证有 。
参考程序:
'''[GESP202403 一级] 小杨买书https://www.luogu.com.cn/problem/B3952'''m = int(input())print(m // 13)print(m % 13)【提交】
https://www.luogu.com.cn/problem/B3866
【问题描述】
给定一个三位数,要求各位不能相同。例如,352 是符合要求的,112 是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是,最终一定会得到 495!
试试看,重新排列352,得到的最大数为532,最小数为235,它们的差是297;变换972-279=693,得到693;变换693,963-369=594;变换594,954-459=495。因此,352经过4次变换得到了495。
现在,输入的三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?
【输入描述】
输入一行,包含一个符合要求的三位数。
【输出描述】
输出一行,包含一个整数,表示经过次变换得到495。
【样例输入1】
352【样例输出1】
4参考程序:
'''[GESP202309 二级] 数字黑洞https://www.luogu.com.cn/problem/B3866'''N = int(input())count = 0while N != 495: a = N // 100 b = N // 10 % 10 c = N % 10 a_ = max(max(a, b), c) c_ = min(min(a, b), c) b_ = a + b + c - a_ - c_ max_ = a_ * 100 + b_ * 10 + c_ min_ = c_ * 100 + b_ * 10 + a_ N = max_ - min_ count += 1print(count)【提交】
https://www.luogu.com.cn/problem/B3925
【问题描述】
海滩上有一堆鱼, 只小猫来分。第一只小猫把这堆鱼平均分为份,多了个,这只小猫把多的个扔入海中,拿走了一份。第二只小猫接着把剩下的鱼平均分成份,又多了个,小猫同样把多的个扔入海中,拿走了一份。第三、第四、……,第只小猫仍是最终剩下的鱼分成份,扔掉多了的个,并拿走一份。
编写程序,输入小猫的数量以及每次扔到海里的鱼的数量,输出海滩上最少的鱼数,使得每只小猫都可吃到鱼。
例如:两只小猫来分鱼,每次扔掉鱼的数量为,为了每只小猫都可吃到鱼,可令第二只小猫需要拿走1条鱼,则此时待分配的有3条鱼。第一只小猫待分配的鱼有条。
【输入描述】
总共 2 行。第一行一个整数 ,第二行一个整数 。
保证 ;。
【输出描述】
一行一个整数,表示满足要求的海滩上最少的鱼数。
【特别提醒】
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
【样例输入1】
21【样例输出1】
7【样例输入2】
31【样例输出2】
25【样例解释2】
三只小猫来分鱼,每次扔掉鱼的数量为,为了每只小猫都可吃到鱼,可令第三只小猫需要拿走3条鱼(拿走1条和2条不满足要求),则此时待分配的有10条鱼。第二只小猫待分配的鱼有条。第一只小猫待分配的鱼有条。
参考程序:
'''[GESP202312 三级] 小猫分鱼https://www.luogu.com.cn/problem/B3925'''n = int(input())i = int(input())k = 1whileTrue: ans = k * n + ifor j in range(1, n):if ans % (n - 1) != 0: flag = Falsebreak ans = ans // (n - 1) * n + ielse:break k += 1print(ans)【提交】
https://www.luogu.com.cn/problem/B4006
【问题描述】
小杨发现了 个宝箱,其中第 个宝箱的价值是 。
小杨可以选择一些宝箱放入背包并带走,但是小杨的背包比较特殊,假设小杨选择的宝箱中最大价值为 ,最小价值为 ,小杨需要保证 ,否则小杨的背包会损坏。
小杨想知道背包不损坏的情况下,自己能够带走宝箱的总价值最大是多少。
【输入描述】
第一行包含两个正整数 ,含义如题面所示。
第二行包含 个正整数 ,代表宝箱的价值。
【输出描述】
输出一个整数,代表带走宝箱的最大总价值。
【样例输入1】
5 11 2 3 1 2【样例输出1】
7【样例解释】
在背包不损坏的情况下,小杨可以拿走两个价值为 的宝箱和一个价值为 的宝箱。
【数据范围】
对于全部数据,保证有 。
参考答案:
'''[GESP202406 四级] 宝箱https://www.luogu.com.cn/problem/B4006'''deffunc(index): max_ = lst[index] total = max_for j in range(index - 1, -1, -1):if max_ - lst[j] <= k: total += lst[j]else:breakreturn totaln, k = map(int, input().split())lst = sorted(map(int, input().split()))result = 0for i in range(n - 1, -1, -1): a = func(i)if a > result: result = aprint(result)青少年编程竞赛交流
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。
