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

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

  • 2026-10-11 07:06:58
【第40期】21天养成编程习惯:Python刷题第13天

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

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

Day13:GESP一级2024.09_美丽数字

【提交】

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

【问题描述】

小杨有  个正整数,他认为一个正整数是美丽数字当且仅当该正整数是  的倍数但不是  的倍数。

小杨想请你编写一个程序计算  个正整数中美丽数字的数量。

【输入描述】

第一行包含一个正整数 ,代表正整数个数。

第二行包含  个正整数 。

【输出描述】

输出一个整数,代表其中美丽数字的数量。

【样例输入1】

31 9 72

【样例输出1】

1

【提示】

  •  既不是  的倍数,也不是  的倍数;
  •  是  的倍数,不是  的倍数;
  •  既是  的倍数,也是  的倍数; 因此答案为 。

对于全部数据,保证有 。

参考答案:

'''[GESP202409 一级] 美丽数字https://www.luogu.com.cn/problem/B4035'''n = int(input())cnt = 0lst = map(int, input().split())for x in lst:if x % 9 == 0and x % 8 != 0:        cnt += 1print(cnt)

Day13:GESP二级2024.03_乘法问题

【提交】

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

【问题描述】

小杨同学最近刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。

对于大部分题目,小杨同学可以精准地算出答案,不过,如果这些数的乘积超过 ,小杨同学就不会做了。

请编写程序,告诉小杨同学会如何作答。

【输入描述】

第一行一个整数 ,表⽰随后将输⼊的正整数个数。

接下来  行,每行一个整数 。小杨同学需要将所有的  乘起来。如第1⾏输⼊3,则表⽰随后将输⼊3个正整数,并在随后的输出中,将这3个正整数相乘的结果输出。

保证 ,【注意:这个两个条件为限制输⼊,不必反应到编写代码之中】。

【输出描述】

输出一行,如果乘积超过 ,则输出 >1000000;否则输出所有数的乘积。

【特别提醒】

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。

【样例输入1】

235

【样例输出1】

15

【样例输入2】

3100100100

【样例输出2】

1000000

【样例输入 3】

41001001002

【样例输出 2】

>1000000

参考程序:

'''[GESP202403 二级] 乘法问题https://www.luogu.com.cn/problem/B3954'''n = int(input())product = 1for _ in range(n):    a = int(input())    product *= aif product > 1000000:    print(">1000000")else:    print(product)

Day13:GESP三级2024.03_字母求和

【提交】

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

【问题描述】

小杨同学发明了一种新型密码,对于每一个小写英文字母,该小写字母代表了一个正整数,即该字母在字母顺序中的位置,例如字母 a 代表了正整数 1,字母 b 代表了正整数 2;对于每一个大写英文字母,该大写字母代表了一个负整数,即该字母的 ASCII 码的相反数,例如字母 A 代表了正整数 -65。小杨同学利用这种方式对一个整数进行了加密并得到了一个由大写字母和小写字母组成的字符串,该字符串中每个字母所代表数字的总和即为加密前的整数,例如 aAc 对应的加密前的整数为 1+(-65)+3=-61。

对于给定的字符串,请你计算出它对应的加密前的整数是多少。

【输入描述】

第一行一个正整数,表示字符串中字母的个数。

第二行一个由大写字母和小写字母的字符串,代表加密后得到的字符串。

【输出描述】

输出一行一个整数,代表加密前的整数。

【样例输入1】

3aAc

【样例输出1】

-61

对于全部数据,保证有。

参考程序:

'''[GESP202403 三级] 字母求和https://www.luogu.com.cn/problem/B3956'''n = int(input())s = input()sum = 0for char in s:    ascii_code = ord(char)if65 <= ascii_code <= 90:        sum -= ascii_codeelif97 <= ascii_code <= 122:        sum += (ascii_code - 97 + 1)print(sum)

Day13:GESP四级2024.09_黑白方块

【提交】

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

【问题描述】

小杨有一个  行  列的网格图,其中每个格子要么是白色,要么是黑色。

小杨想知道网格图中是否存在一个满足如下条件的子矩形:

  • 子矩形由  行  列组成;
  • 子矩形的第  行和第  行只包含白色格子;
  • 对于子矩形的第  行和第  行,只有第  个和第  个格子是白色的,其余格子都是黑色的;

请你编写程序帮助小杨判断。

【输入描述】

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

接下来是  组测试用例。对于每组测试用例,一共  行。

第一行包含两个正整数 ,含义如题面所示。

之后  行,每行一个长度为  的  串,代表网格图第  行格子的颜色,如果为 ,则对应格子为白色,否则为黑色。

【输出描述】

对于每组测试用例,如果存在,输出 Yes,否则输出 No。

【样例输入1】

31 401105 500000011000110000001011005 50000001100011100000101100

【样例输出1】

NoYesNo

【提示】

满足条件的子矩形形如:

0000011001100000

对于全部数据,保证有 。

参考程序:

'''GESP202409 四级 黑白方块https://www.luogu.com.cn/problem/B4040'''n, m = 0, 0lst = []defcheck(i, j):if i + 4 >= n or j + 4 >= m:return Falseif "".join(lst[i][j:j + 4]) != "0000":return Falseif "".join(lst[i + 1][j:j + 4]) != "0110":return Falseif "".join(lst[i + 2][j:j + 4]) != "0110":return Falseif "".join(lst[i + 3][j:j + 4]) != "0000":return Falsereturn Truet = int(input())for _ in range(t):    n, m = map(int, input().split())    lst = []for _ in range(n):        s = list(input())        lst.append(s)if n < 4 or m < 4:        print("No")continue    flag = Falsefor p in range(n):for q in range(m):if check(p, q):                print("Yes")                flag = Truebreakif flag is True:breakif flag is False:        print("No")

青少年编程竞赛交流

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

最新文章

随机文章