【ZY信息学素养专项赛】是世界机器人大会青少年机器人设计与信息素养大赛广东赛区活动中赛项之一,旨在通过以赛促学的方式,开拓创新视角,训练计算思维,培养小学生对新兴科技的兴趣。
【ZY信息学素养专项赛】中有3个赛道:人工智能编程、Python编程、C++编程。按照赛程安排,现公布3大赛道决赛主题,请各位参赛选手根据主题/题库提前做好准备。
各赛道的决赛主题即日公布并同时启动报名(报名将于5月31日截止)。
各位参赛选手们可根据主题/题库提前做好准备,期待选手们接下来在决赛现场的精彩表现~
01
人工智能编程决赛主题
人工智能编程赛项采用现场完成搭建模型+编程程序任务+调试(共60分钟),并以线下对抗赛的形式进行,选手依据主题现场完成作品搭建、程序任务并进行赛前测试,按现场裁判分组进行对抗赛。
主题:冰壶挑战赛
冰壶擂台挑战模拟了冬奥会冰壶项目的竞赛过程,并加以修改以增加对抗性和趣味性。机器人掷出冰壶(直径52mm, 乐高23065球),并令其尽可能精准地停到高分区,或将对方的冰壶击出得分区。
设备限制
人工智能编程得分规则
左右滑动放大,查看具体得分规则···
02
Python编程决赛主题
Python编程赛项采用线下答辩形式(8分钟),选手依据自主创作的主题作品进行现场展示(选手需要提前准备好作品,带到现场),并对裁判组提问进行解答。
主题:夏季奥运会
奥林匹克运动会(希腊语:Ολυμπιακοί Αγώνες;法语:Jeux olympiques;英语:Olympic Games;中文简称“奥运会”),是国际奥林匹克委员会主办的世界规模最大的综合性运动会,每四年一届,会期不超过16日,是世界上影响力最大的体育盛会。第33届夏季奥林匹克运动会,即2024年巴黎奥运会,是由法国举办的国际性奥林匹克赛事。该届奥运会将于今年7月26日开幕,8月11日闭幕。
请以“奥运会”为主题,发挥自己的想象力和创造力,运用Python编程设计一张海报,宣传这一盛大的体育盛事,为各位奥运健儿加油!
省赛现场作品展示要求
1、参赛选手携带U盘提交作品,文件夹命名为:【ZY-Python+考号+参赛选手姓名+作品名称】。
2、作品展示形式不限,文件夹中必须包含作品程序,如有其它展示文件(如展示PPT、运行视频、作品效果图等)需一同放入作品文件夹中提交。
Python编程赛项评分标准
03
C++编程题库
C++编程赛项采用线下答辩形式(10min),选手依据现场抽取的题目,准备15分钟后,进行编程思路的分析和演绎,并对裁判组提问进行解答。题库难度分为两档:中等难度及较难,每档共10道题。
以下为题库公布:
中等难度★★★
1、天数计算
【题目描述】图图学习了计算每月有多少天,以及判断平年和闰年的方法,现在他想用编程来实现。应该如何实现呢?
【输入】输入一行,包含两个整数,分别表示年份和月份。
【输出】输出一行,包含一个整数,表示输入的这个月份对应的天数。
【输入样例1】2023 2
【输出样例1】28
【输入样例2】2024 1
【输出样例2】31
2、长方形的可能数量
【题目描述】图图本周学习了如何计算长方形面积。存在固定的规律,如果一个长方形的长和宽都是整数,那么面积一定也是整数。图图现在想知道如果给定长方形的面积,有多少种可能的长方形,满足长和宽都是整数?
如果两个长方形的长相等、宽也相等,则认为是同一种长方形。约定长方形的长大于等于宽。正方形是特殊的长方形。
【输入】输入一行,包含一个整数N(2≤N≤1000),表示长方形的面积。
【输出】输出一行,包含一个整数C,表示有C种可能的长方形。
【输入样例1】10
【输出样例1】2
【输入样例2】8
【输出样例2】2
样例解释1: 2种长方形面积为10,它们的长宽分别为2×5、10×1。
样例解释2: 2种长方形面积为8,它们的长宽分别为2×4、8×1。
【题目描述】图图想要为自己设计合适的时间计划表。如果知道了两个时间,需要计算它们相隔的分钟数,使用编程,应该如何实现呢?
【输入】输入4行,第1行为开始的小时,第2行为开始的分钟,第3行为结束的小时,第四行为结束的分钟。时间使用24小时制,规定时间为同一天。
【输出】输出一行,包含一个整数,从开始时刻到结束时刻之间有多少分钟。
【输入样例1】
10
【输出样例1】5
【输入样例2】
10
【输出样例2】60
4、求和
【题目描述】输入一个正整数n,求:1+(1+2)+(1+2+3)+…+(1+2+3+4+…n)的累计和。
【输入】输入一个正整数n。1≤n≤100。
【输出】输出累计相加的结果。
【输入样例1】2
【输出样例1】3
【输入样例2】5
【输出样例2】35
5、选购文具
【题目描述】图图来到文具店选购文具。需要的文具以及具体价格为:水笔2元1支;笔记本5元1本;尺子3元1把。图图手里有m元钱。每样文具需要的数量,通过输入实现。编写程序帮图图算算,他手里的钱是否够买他需要的文具。
【输入】输入4行。
第一行包含一个正整数x(x≤10^9),是图图购买水笔的数量。
第二行包含一个正整数y(y≤10^9),是图图购买笔记本的数量。
第三行包含一个正整数z(z≤10^9),是图图购买尺子的数量。
第四行包含一个正整数m,是图图手里的钱数(单位:元)。
【输出】输出2行。如果图图手里的钱够买他需要的文具,则第一行输出"Yes",第二行输出图图会剩下的钱数(单位:元);否则,第一行输出"No",第二行输出图图缺少的钱数(单位:元)。
【输入样例1】
10
【输出样例1】
Yes
【输入样例2】
15
【输出样例2】
No
6、图图的幸运数
【题目描述】所有个位数为k的正整数,以及所有的倍数,都被图图称为“k幸运数”。图图想知道正整数L和R之间(包括L和R)所有k幸运数的和,你能帮帮他吗?
【输入】输入3行。第一行包含一个正整数k,第二行包含一个正整数L,第三行包含一个正整数R。约定2≤k≤9,1≤L≤R≤1000。
【输出】输出1行,符合题意的幸运数之和。
【输入样例1】
10
【输出样例1】
【输入样例2】
10
20
【输出样例2】
31
样例解释1:1和10之间共有1个7幸运数:7。因为7既是7的倍数,个位数又为7。因此,结果为7。
样例解释2:10和20之间共有2个7幸运数:14和17。14是7的倍数,17的个位数为7。因此,结果为31。
7、图图的考试
【题目描述】马上就要考试了,图图知道今天是星期几,以及距离考试的天数,可以帮助图图计算出他考试具体是星期几吗?(使用7表示星期日)
【输入】输入 2 行,第一行一个整数X(1≤X≤7)表示今天是星期几;第二行一个整数N(1≤N≤364)表示距离考试的天数。
【输出】输出一个整数,表示图图考试那天是星期几。
【输入样例1】
10
【输出样例1】
【输入样例2】
【输出样例2】
样例解释 1:今天是星期1,那么10天后就是星期四。
样例解释 2:今天是星期日,那么8天后就是星期一。
8、报数游戏
【题目描述】图图在玩一个报数游戏,规则是如果是1到n报数,选择一个数m的倍数,如果报数到m的倍数时,就跳过。例如,如果n=5,m=3,那么图图就需要依次报出1、2、4,5。图图想自己先演示一遍,请你依次输出图图报的数。
【输入】输入 2 行,第一行一个整数n(1≤n≤1,000);第二行一个整数m(1≤m≤100)。
【输出】输出若干行,依次表示图图报的数。
【输入样例1】
【输出样例1】
【输入样例2】
【输出样例2】
9、购买课外书
【题目描述】图图决定购买一些课外书来增加自己的阅读量,一本书的价格为13员,请根据图图零用钱的金额,编写程序,计算最多可以购买多少本书,还剩多少钱。
【输入】输入一个正整数n,表示图图拥有的零用钱数。
【输出】输出包含两行,第一行,购买图书的本数,第二行剩余的零用钱数。
【输入样例1】50
【输出样例1】
11
【输入样例2】99
【输出样例2】
10、因数
【题目描述】图图最近学习了因数的概念,具体来说,如果一个正整数a可以被另一个正整数b整除,那么我们就说b是a的因数。请你帮忙写一个程序,从小到大输出正整数a的所有因数。
【输入】输入一行一个正整数n(n≤1000)。
【输出】输出若干行,为n的所有因数,从小到大排列。
【输入样例1】2
【输出样例1】
【输入样例2】8
【输出样例2】
较难★★★★★
1、图图画三角形
【题目描述】输入一个正整数 n,请使用大写字母拼成一个这样的三角形图案(参考样例输入输出):三角形图案的第 1 行有 1 个字母,第 2 行有 2 个字母,以此类推;
在三角形图案中,由上至下、由左至右依次由大写字母 A-Z 填充,每次使用大写字母 Z 填充后,将从头使用大写字母 A 填充。
【输入】输入一行,包含一个正整数 n。约定 2≤n≤40。
【输出】输出符合要求的三角形图案。注意每行三角形图案的右侧不要有多余的空格。
【样例输入1】
【样例输出1】
BC
DEF
【样例输入2】
【样例输出2】
BC
DEF
GHIJ
KLMNO
PQRSTU
VWXYZAB
2、图图的百钱百鸡问题
【题目描述】“百鸡问题”是出自我国古代《张丘建算经》的著名数学问题。大意为:“每只公鸡 5 元,每只母鸡 3 元,每 3 只小鸡 1 元;现在有 100 元,买了 100 只鸡,共有多少种方案?”图图很喜欢这个故事,他决定对这个问题进行扩展,并使用编程解决:如果每只公鸡 x 元,每只母鸡 y 元,每 z 只小鸡 1 元;现在有 n 元,买了 m 只鸡,共有多少种方案?
【输入】输入一行,包含五个整数,分别为问题描述中的 x、y、z、n、m。约定 1≤x, y, z ≤10,1≤ n, m ≤1000。
【输出】输出一行,包含一个整数 C,表示有 C 种方案。
【样例输入1】5 3 3 100 100
【样例输出1】4
【样例解释1】
这就是问题描述中的“百鸡问题”。4 种方案分别为:公鸡 0 只、母鸡 25 只、小鸡 75 只;公鸡 4 只、母鸡 18 只、小鸡 78 只;公鸡 8 只、母鸡 11 只、小鸡 81只;公鸡 12 只、母鸡 4 只、小鸡 84 只。
【样例输入2】1 1 1 100 100
【样例输出2】5151
3、图图找素数
【题目描述】图图刚刚学习了素数的概念:如果一个大于1 的正整数,除了 1 和它自身外,不能被其它正整数整除,则这个正整数是素数。现在,图图想找到两个正整数A和B之间(包括A和B)有多少个素数?
【输入】输入 2 行,第一行包含正整数A,第二行包含正整数B。约定 2 ≤ A ≤ B ≤1000。
【输出】输出一行,包含一个整数C,表示找到C个素数。
【样例输入1】
10
【样例输出1】
【样例解释1】
在 2 和 10 之间有 4 个素数,分别为:2、3、5、7。
【样例输入2】
98
100
【样例输出2】
4、阿姆斯特朗数
【题目描述】阿姆斯特朗数是指,一个N位数,满足各位数字N次方之和是本身。例如,153 是 3位数,其每位数的 3 次方之和,1*1*1+5*5*5+3*3*3=153,因此 153 是阿姆斯特朗数;1634是 4 位数,其每位数的 4 次方之和,1*1*1*1+6*6*6*6+3*3*3*3+4*4*4*4 = 1634,因此 1634 是阿姆斯特朗数。现在,输入若干个正整数,请判断它们是否是阿姆斯特朗数。
【输入】输入第一行是一个正整数M,表示有M个待判断的正整数。约定 1 ≤ M ≤ 100。
从第 2 行开始的M行,每行一个待判断的正整数。约定这些正整数均小于10^8。
【输出】输出M行,如果对应的待判断正整数为阿姆斯特朗数,则输出英文大写字母'T',否则输出英文大写字母'F'。
提示:不需要等到所有输入结束在依次输出,可以输入一个数就判断一个数并输出,再输入下一个数。
【样例输入1】
152
111
153
【样例输出1】
【样例输入2】
8208
548834
88593477
12345
5432
【样例输出2】
5、图图的 X 字矩阵
【题目描述】图图想要构造一个 N*N 的 X 字矩阵(X为奇数),这个矩阵的两条对角线都是半角加号 + ,其余都是半角减号- 。例如,一个 5*5 的 X 字矩阵如下:
+---+
-+-+-
--+--
-+-+-
+---+
请你帮图图根据给定的 打印出对应的“X 字矩阵”。
【输入】一行一个整数 N( 5 ≤ N ≤ 49 ,保证 N 为奇数)。。
【输出】输出对应的“X 字矩阵”。
请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出 N 行,每行除了换行符外恰好包含 N 个字符,这些字符要么是 + ,要么是 - 。
【样例输入1】5
【样例输出1】
+---+
-+-+-
--+--
-+-+-
+---+
【样例输入2】7
【样例输出2】
+-----+
-+---+-
--+-+--
---+---
--+-+--
-+---+-
+-----+
6、495问题
【题目描述】给定一个三位数,要求各个位不能相同。例如,352是符合要求的, 112是不符合要求的。将这个三位数的三个数字重新排列,得到的最大的数,减去得到的最小的数,形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是,最终一定会得到 495 !
试试看,重新排列 352,得到的最大数为 532,最小数为 235,它们的差是 297;变换 297,得到 972-279;变换693,963-369=594 ;变换 594 ,954-459=495 。因此,352 经过4次变换得到了495 。
现在,输入的三位数,你能通过编程得出,这个三位数经过多少次变换能够得到495吗?
【输入】输入一行,包含一个符合要求的三位数 。
【输出】输出一行,包含一个整数 C,表示经过C 次变换得到495 。
【样例输入】352
【样例输出】4
7、图图做题
【题目描述】为了准备考试,图图每天都要做题。第 1 天,图图做了 a 道题;第 2 天,图图做了 b 道题;从第 3 天起,图图每天做的题目数量是前两天的总和。
此外,图图还规定,当自己某一天做了大于或等于 m 题时,接下来的所有日子里,他就再也不做题了。
请问,到了第 N 天,图图总共做了多少题呢?
【输入】总共 4 行。第一行一个整数 ,第二行一个整数 ,第三行一个整数 m ,第四行一个整数 N 。保证 0 ≤ a,b ≤ 10 ;a,b ≤ M ≤ 1000000 ;3 ≤ N ≤ 364 。
【输出】一行一个整数,表示图图 N 天里总共做了多少题目。
【样例输入1】
10
【样例输出1】19
【样例解释 1】
图图第一天做 1 题,第二天做 2 题,第三天做 1+2=3 题,第四天做 2+3=5 题,第五天做3+5=8 题。因此他总共做了 1+2+3+5+8=19 题。
【样例输入2】
【样例输出2】12
【样例解释2】
图图前 5 天分别做了 1,1,2,3,5题,由于第 5 天图图做了5 题,而 m=5,于是图图从此以后不再做题。因此图图总共做了1+1+2+3+5=12 题。
8、图图购物
【题目描述】图图刚收到妈妈给的零花钱,打算全部拿着逛商场。图图的原则很简单,只要见到想买的物品而且能买得起,就一定会买下来之后才会继续往前走。一天下来,图图到底买了多少个物品呢?
【输入】输入共 3 行:
第一行是一个整数 N,表示商场中共有 N(1≤N≤100) 种小明想买的物品;
第二行共有 N 个整数,分别表示小明先后见到想买的物品的价格;
第三行是一个整数 X,表示开始时小明共有 X 元零花钱。
【输出】
输出 1 行,包含一个整数,表示小明买到的物品数。
【样例输入】
7 5 9 10 7 4
30
【样例输出】
9、图图的乘法问题
【题目描述】图图最近刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。
对于大部分题目,图图可以精准地算出答案,不过,如果这些数的乘积超过10^6,图图就不会做了。
请你写一个程序,告诉我们图图会如何作答。
【输入】第一行一个整数 ,表示正整数的个数。
接下来n 行,每行一个整数a 。图图需要将所有的 a 乘起来。保证 n ≤ 50,a ≤ 100 。
【输出】输出一行,如果乘积超过10^6 ,则输出 >1000000 ;否则输出所有数的乘积。。
【样例输入1】
【样例输出1】
15
【样例输入2】
100
100
100
【样例输出2】
>1000000
10、扑克牌翻转
【题目描述】假设有N张扑克牌(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于正面向上的状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将扑克牌全部翻转一次,第二个人(2号)将编号为2的倍数的扑克牌翻转一次,第三个人(3号)将编号为3的倍数的扑克牌翻转一次。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的扑克牌翻转一次。
请问:当第M个人操作之后,哪些扑克牌是正面向上的,按从小到大输出其编号,以空格分开。