当前位置:首页>python>【第42期】21天养成编程习惯:Python刷题第18天

【第42期】21天养成编程习惯:Python刷题第18天

  • 2026-09-21 13:21:27
【第42期】21天养成编程习惯:Python刷题第18天

跟老马一起“升级打怪”学编程!


Day18:GESP一级2024.12_温度转换

【提交】

https://www.luogu.com.cn/problem/B4062

【问题描述】

小杨最近学习了开尔文温度、摄氏温度和华氏温度的转换。令符号  表示开尔文温度,符号  表示摄氏温度,符号  表示华氏温度,这三者的转换公示如下:

现在小杨想编写一个程序计算某一开尔文温度对应的摄氏温度和华氏温度,你能帮帮他吗?

【输入描述】

一行,一个实数 ,表示开尔文温度。

【输出描述】

一行,若输入开尔文温度对应的华氏温度高于 ,输出 Temperature is too high!;否则,输出两个空格分隔的实数  和 ,分别表示摄氏温度和华氏度,保留两位小数。

【样例输入1】

412.00

【样例输出1】

Temperature is too high!

【样例输入2】

173.56

【样例输出2】

-99.59 -147.26

【数据范围】

参考程序:

'''[GESP202412 一级] 温度转换https://www.luogu.com.cn/problem/B4062'''K = float(input())C = K - 273.15F = C * 1.8 + 32if F > 212:    print("Temperature is too high!")else:    print("%.2f %.2f" % (C, F))

Day18:GESP二级2024.12_寻找数字

【提交】

https://www.luogu.com.cn/problem/B4064

【问题描述】

小杨有一个正整数 ,小杨想知道是否存在一个正整数  满足 。

【输入描述】

第一行包含一个正整数 ,代表测试数据组数。

对于每组测试数据,第一行包含一个正整数代表 。

【输出描述】

对于每组测试数据,如果存在满足条件的正整数 ,则输出 ,否则输出 。

【样例输入1】

3168110

【样例输出1】

23-1

【数据范围】

对于全部数据,保证有 。

参考程序:

'''[GESP202412 二级] 寻找数字https://www.luogu.com.cn/problem/B4064'''t = int(input())for i in range(t):    a = int(input())    b = int(a ** 0.25)if b ** 4 == a:        print(b)else:        print(-1)

Day18:GESP三级2025.12_小杨的智慧购物

【提交】

https://www.luogu.com.cn/problem/B4450

【问题描述】

小杨的班级要举办一个环保手工作品展览,老师请小杨去文具店购买  种不同的文具(例如:铅笔、橡皮、尺子等)。

商店里共有  件文具,每件文具都有一个种类编号(从  到 )和价格。

小杨的预算有限,他想了一个聪明的办法:对于每种文具,他只买最便宜的那一件(如果同种文具有多件价格相同且都是最便宜的,他只会购买其中的一件)。请你帮小杨计算出,买齐这  种文具一共需要花费多少钱。

【输入描述】

第一行两个正整数 ,代表文具的种类数和总数。

之后  行,每行两个正整数  和 ,分别代表第  件文具的种类编号和它的价格。数据保证每个种类至少有一件文具可供购买。

【输出描述】

输出一行,代表购买文具的总价。

【样例输入1】

2 51 11 21 12 32 10

【样例输出1】

4

【样例解释】

文具清单如下:

  • 文具 1:种类 1,价格 1
  • 文具 2:种类 1,价格 2
  • 文具 3:种类 1,价格 1
  • 文具 4:种类 2,价格 3
  • 文具 5:种类 2,价格 10

小杨的选择过程:对于种类 1:有三件商品,价格分别为 。其中最便宜的价格是 。对于种类 2:有两件商品,价格分别为 。其中最便宜的价格是 。

计算总价:小杨购买这两类文具的总花费为 。

【数据范围】

对于所有测试点,保证 。

参考程序:

'''[GESP202512 三级] 小杨的智慧购物https://www.luogu.com.cn/problem/B4450'''M, N = list(map(int, input().split()))lst = [1000] * Mfor _ in range(N):    k, p = list(map(int, input().split()))    lst[k - 1] = min(lst[k - 1], p)print(sum(lst))

Day18:GESP四级2024.06_宝箱

【提交】

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天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章