当前位置:首页>java>【第35期】21天养成编程习惯:Python刷题第15天

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

  • 2026-10-23 11:55:12
【第35期】21天养成编程习惯:Python刷题第15天

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

  • 涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试
  • 活动内容:提供不同等级的真题供小朋友们选择练习
  • 备考建议:根据自己备考的等级选择相应题目
  • 附加价值:可作为白名单比赛的备考训练
  • 本月打卡:本月打卡题目

Day15:CIE一级2020.12_编程题37

绘制如下图形:

1、画一个由两个直角三角形组成的正方形,边长为180像素;

2、左上三角形填充为黄色,右下三角形填充为红色;

3、设置画笔速度为1,线条为黑色;

4、画图结束,隐藏并停止画笔。

参考程序:

注意:仅供参考,画法和顺序,考生可以自行设计,结果符合题意即可。

import turtle as tt.speed(1)t.fillcolor('red')t.begin_fill()t.forward(180)t.left(90)t.forward(180)t.home()t.end_fill()t.fillcolor('yellow')t.begin_fill()t.left(90)t.forward(180)t.right(90)t.forward(180)t.home()t.end_fill()t.hideturtle()turtle.done()

Day15:GESP二级2025.03_等差矩阵

【提交】

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

【问题描述】

小 A 想构造一个  行  列的矩阵,使得矩阵的每一行与每一列均是等差数列。小 A 发现,在矩阵的第  行第  列填入整数 ,得到的矩阵能满足要求。你能帮小 A 输出这个矩阵吗?

【输入描述】

一行,两个正整数 。

【输出描述】

共  行,每行  个由空格分割的整数,表示小 A 需要构造的矩阵。

【样例输入1】

3 4

【样例输出1】

1 2 3 42 4 6 83 6 9 12

【数据范围】

对于所有测试点,保证 ,。

参考程序:

'''[GESP202503 二级] 等差矩阵https://www.luogu.com.cn/problem/B4259'''n, m = list(map(int, input().split()))for i in range(1, n + 1):for j in range(1, m + 1):        print(i * j, end=" ")    print()

Day15:GESP三级2024.12_数字替换

【提交】

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))

Day15:GESP四级2024.12_Recaman数列

【提交】

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

【问题描述】

小杨最近发现了有趣的 Recamán 数列,这个数列是这样生成的:

  • 数列的第一项  是 ;
  • 如果  是正整数并且没有在数列中出现过,那么数列的第  项  为 ,否则为 。

小杨想知道 Recamán 数列的前  项从小到大排序后的结果。手动计算非常困难,小杨希望你能帮他解决这个问题。

【输入描述】

第一行,一个正整数 。

【输出描述】

一行, 个空格分隔的整数,表示 Recamán 数列的前  项从小到大排序后的结果。

【样例输入】

5

【样例输出】

1 2 3 6 7

【样例解释】

对于样例 1,:

  • ;
  • ,不是正整数,因此 ;
  • ,不是正整数,因此 ;
  • ,是正整数,且没有在数列中出现过,因此 ;
  • ,不是正整数,因此 ;

 从小到大排序后的结果为 1 2 3 6 7。

【样例输入2】

8

【样例输出2】

1 2 3 6 7 12 13 20

【数据范围】

对于所有数据点,保证 。

参考程序:

方法一:

'''GESP202412 四级 Recamánhttps://www.luogu.com.cn/problem/B4068'''n = int(input())a = [0] * na[0] = 1for i in range(1, n):    b = a[i - 1] - (i + 1)if b > 0and b notin a:        a[i] = belse:        a[i] = a[i - 1] + (i + 1)a.sort()print(" ".join([str(i) for i in a]))

方法二:

'''GESP202412 四级 Recamánhttps://www.luogu.com.cn/problem/B4068'''n = int(input())a = [1]for i in range(2, n + 1):    a.append(a[-1] - i if a[-1] - i > 0and a[-1] - i notin a else a[-1] + i)defbubble_sort(a):    n, flag = len(a), Truewhile flag:        flag = Falsefor i in range(n - 1):if a[i] > a[i + 1]:                flag = True                a[i], a[i + 1] = a[i + 1], a[i]bubble_sort(a)for i in range(n):    a[i] = str(a[i])print(' '.join(a))

青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章