【最全合集】2022、2023年全国青少年信息素养大赛Python初赛、省赛、国赛详细解析

一、2022年省赛解析

第1题-分草莓

小明邀请了四个同学一起游玩,带了一盒草莓平均分给大家一起吃,任意输入草莓的数量n,输出每个人可以分到几颗草莓,最后剩下了几颗。

注意:

input()内不添加任何参数

只有完全正确才可提交,若无法点击提交说明答题存在错误,可及时进行检查并修改

输入样例:

28

输出样例::

5

3

[参考代码]:

# 将字符数字转成整数``n = int(input())``# 使用 //和 %运算符``print(n // 5)``print(n % 5)

第2题-商店结算

商店铅笔优惠销售标准:购买8支以内(含),每支售价0.8元,超过8支部分,每支售价0.7元。任意输入购买的铅笔总量n,输出总金额。

注意:

input()内不添加任何参数

只有完全正确才可提交,若无法点击提交说明答题存在错误,可及时进行检查并修改

输入样例:

11

输出样例:

8.5

[参考代码]:

# 将字符数字转成整数``n = int(input())``# 分两种情况进行计算``if n <= 8:`    `print(n * 0.8)``else:`    `print( 8 * 0.8 + (n - 8) * 0.7 )

第3题-数位输出

输入一个正整数n,如果是四位数,则分别输出这个数千位、百位,十位和个位分别为多少,如果是两位数,则输出个位数字是多少,如果不是两位或者四位数,则输出no。

注意:

input()内不添加任何参数

只有完全正确才可提交,若无法点击提交,说明答题存在错误,可及时进行检查并修改

输入样例1:

2345

输出样例:

2

3

4

5

输入样例2:

23

输出样例:

3

输入样例3:

666

输出样例:

no

[参考代码]:

n = input()``if len(n) == 2:`    `print(n[-1])``elif len(n) == 4:`    `print(n[0],n[1],n[2],n[3],sep="\n")``else:`    `print("no")

在Python编程中,print函数可以输出多个内容,默认使用空格隔开,如果要使用其它符号,可以通过关键字参数sep来设置,"\n"是转义字符,表示换行。

第4题-打印星号

任意输入一个整数n,输出一个n行的的图案,每行都是由数字+空格+*号组成,*号后无空格。

注意:

input()内不添加任何参数

只有完全正确才可提交,若无法点击提交说明答题存在错误,可及时进行检查并修改

输入样例:

5

输出样例:

0*********

1 *******

2 *****

3 ***

4 *

[参考代码]:

n = int(input())``for i in range(n):`    `print(i," " * i, "*" * (2 * (n - i) - 1), sep="")

当然了,如果你不知道或者不想使用print(“*” * 10)这种方式,也可以使用循环分别输出数字、空格和*。

for i in range(n):`    `# 输出数字`    `print(i,end="")`    `# 输出空格`    `for j in range(i):`        `print(" ",end="")`    `# 输出*`    `for j in range(0,2 * (n - i) - 1):`        `print("*",end="")`    `# 换行`    `print()

第5题-缺憾数

已知:缺憾数是指这个数加1之后一定可以表示成另一个数的平方的形式,比如8和99就是两个缺憾数:

8 + 1 = 3 ^ 2

99 + 1 = 10 ^ 2

任意输入两个正整数m和n,按顺序输出m和n这两个数字范围内所有的缺憾数。

注意:

input()内不添加任何参数

输入样例:

48

10

输出样例:

15

24

35

[参考代码]:

m = int(input())``n = int(input())``   ``for i in range(min(m,n), max(m,n)):`    `# 计算开方数,并转成整数`    `a = (i + 1) ** 0.5`    `# 将a转成整数`    `a  = int(a)`    `if i + 1 == a ** 2:`        `# 输出数字`        `print(i)

如果不熟悉**运算的话,可以使用循环逐个来判断,相对来说,代码会麻烦一些。

第6

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值