2022 年全国青少年信息素养大赛 Pyth on
国 赛
1、 分苹果
题目背景:
把一堆苹果 分给 n 个小朋友,每个人拿到的苹果数量不同,并且每个人 至少有
一 个。
任意输入小 朋友的数量 n ,问这堆苹果至少应该有多少个。
输 入描述:
任意输入小 朋友的数量 n
输出描述:
输出这堆苹 果至少应该有多少个
样 例输入:
3
样例输出:
6
注意:
in p ut( ) 内不 添加任何参数
只有完全正 确才可提交,若无法点击提交说明答题存在错误,可及时进 行检
查 并修改
2、 韩信点 兵
题目背景:
韩信点兵又 称为中国剩余定理,相传汉高祖刘邦问大将军韩信统御士兵 多
少,韩信答 说,每 3 人一列余 2 人、 5 人一列余 4 人、 7 人一列余 6 人。
输 入任意一 个数字 n ( 0< =n< =10000 )表示刘邦总共的兵力,计算韩信可能统
御 的士兵数 量并依次输出。
输 入描述:
输入任意一 个数字 n ( 0< =n< =10000 )表示刘邦总共的兵力
输 出描述:
计算韩信可 能统御的士兵数量并依次输出,每行一个,从小到大
样 例输入:
500
样 例输出:
104
209
314
419
注 意:
in p ut( ) 内不 添加任何参数
只有完全正 确才可提交,若无法点击提交说明答题存在错误,可及时进 行检
查 并修改
# 方法 1 ,变 量法
n = int (inp ut ( ))
s = 0
for i in ran ge (1, n + 1):
s += i
pri nt (s)
1
2
3
4
5
6
3、 借书问 题
题目背景:
小明家里有 很多不同的趣味书籍,有 3 个好朋友每人来借 — 本书(同 — 本书一
次 不能借给 两个人)
任意输入书 籍的数量 n(3 < =n< =100) ,输出在所有的书籍中,找 3 本书给 3 个人
有 多少种不 同的排列组合方法
输 入描述:
任意输入书 籍的数量 n(3 < =n< =100)
输 出描述:
输出在所有 的书籍中,找 3 本书给 3 个人有多少种不同的排列组合方法
样 例输入:
3
样例输出:
6
注意:
in p ut( ) 内不 添加任何参数
只有完全正 确才可提交,若无法点击提交说明答题存在错误,可及时进 行检
查 并修改
# 将输入的数 字转成整 数
n = int (inp ut ( ))
# 使用枚举算 法,判断 每个数字是否同时满足 3 个条件
for i in ran ge (n + 1) :
if i % 3 == 2 and i % 5 == 4 and i % 7 == 6:
pri nt (i)
1
2
3
4
5
6
7
4、 四位数 密码
题目背景:
情报员使用 4 位数字来传递信息,同时为了防止信息泄露,需要将数字 进行加
密 。数据加 密的规则是 :
1). 每个数字都 进行如下处理:该数字加上 5 之后除以 10 的余数,替换原数
字 ;
2). 将处理后第 一位数字与第三位数字进行交换,第二位数字与第四位数字进
行 交换;
3). 现在任意输 入一个四位数 n(1 000 < = n < = 9 999) ,输出加密之后的数字。
输 入描述:
一个四位数
输 出描述:
加密后的四 位数
样 例输入:
123 4
样 例输出:
896 7
注 意:
in p ut( ) 内不 添加任何参数
只有完全正 确才可提交,若无法点击提交说明答题存在错误,可及时进 行检
查 并修改
# 方法 1 ,数 学方法
n = int (inp ut ( ))
pri nt (n * ( n - 1) * ( n - 2))
1
2
3
n = int (inp ut ( ))
# 分别获取个 位、十位 、百位和千位
1
2
5、 邮票面 值
题目背景:
我们在寄信 的时候都要贴邮票,在邮局有一些小面值的邮票,通过这些 小面
值 邮票中的 一张或者几张的组合,可以满足不同邮件的不同邮资。
已 知每个信 封上最多能贴 5 张邮票,邮票的种类至少需要 3 种,任意输入 一个
数 字 n 代表 邮票的种类,然后依次输入 n 个数字代表不同种类的邮票面值 ,计算并
输 出每个信 封上可以构成的邮资的最大值。
输 入描述:
第一行输入 一个数字 n 代表邮票的种类;
然 后依次输 入 n 行数字代表 n 个不同种类的邮票面值;
输 出描述:
输出每个信 封上可以构成的邮资的最大值。
样 例输入:
4
1
2
3
gw = n % 10
sw = n // 10 % 10
bw = n // 100 % 10
qw = n // 100 0
# 加密处理
gw = ( gw + 5) % 10
sw = ( sw + 5) % 10
bw = ( bw + 5) % 10
qw = ( qw + 5) % 10
# 数字交换
gw , bw = bw , gw
sw , qw = qw , sw
# 直接输出
pri nt (q w ,bw ,sw ,gw ,sep ="" )
3
4
5
6
7
8
9
10
11
12
13
14
15
16
4
样例输出:
17
注 意:
in p ut( ) 内不 添加任何参数
只有完全正 确才可提交,若无法点击提交说明答题存在错误,可及时进 行检
查 并修改
6、 取球
题目背景:
一个箱子里 面存放着 50 个球,其中 10 个红色, 10 个黄色, 30 个蓝色。
现 在从箱子 里面任意取 n 个球,计算并输出不同颜色的球的数量组合一 共有多
少 种可能性 。
输 入描述:
一个数字 n
输出描述:
一个数字, 可能的组合总数
# 获取数字 n
n = int (inp ut ( ))
# 定义列表 stamps ,用于保存不同的面值
sta mps = []
# 依次输入不 同邮票面 值,并存入列表中
for i in ran ge (n) :
sta mps .a pp end (i nt (inp ut (
2022年全国青少年信息素养大赛Python国赛,2022年全国青少年信息素养大赛Python编程国赛真题