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

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

  • 2026-10-11 06:41:26
【第40期】21天养成编程习惯:Python刷题第03天

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

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

Day03:GESP一级2024.06_立方数

【提交】

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

【问题描述】

小杨有一个正整数 ,他想知道  是否是一个立方数。

一个正整数  是立方数当且仅当存在一个正整数  满足 。

【输入描述】

第一行包含一个正整数 。

【输出描述】

如果正整数  是一个立方数,输出 Yes,否则输出 No。

【样例输入1】

8

【样例输出1】

Yes

【样例输入2】

9

【样例输出2】

No

【样例解释】

对于样例1,存在正整数  使得 ,因此  为立方数。

对于样例2,不存在满足条件的正整数,因此  不为立方数。

【数据范围】

对于全部数据,保证有 。

参考程序:

'''GESP2024.06 立方数https://www.luogu.com.cn/problem/B4001'''n = int(input())i, flag = 1, Falsewhile i ** 3 <= n:if i ** 3 == n:        flag = Truebreak    i += 1if flag:    print("Yes")else:    print("No")

Day03:GESP二级2023.12_小杨做题

【提交】

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

【问题描述】

为了准备考试,小杨每天都要做题。第 1 天,小杨做了  道题;第 2 天,小杨做了  道题;从第 3 天起,小杨每天做的题目数量是前两天的总和。

此外,小杨还规定,当自己某一天做了大于或等于  题时,接下来的所有日子里,他就再也不做题了。

请问,到了第  天,小杨总共做了多少题呢?

【输入描述】

总共 4 行。第一行一个整数 ,第二行一个整数 ,第三行一个整数 ,第四行一个整数 。

保证 ;;。

【输出描述】

一行一个整数,表示小杨  天里总共做了多少题目。

【特别提醒】

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

【样例输入1】

12105

【样例输出1】

19

【样例解释 1】

小杨第一天做  题,第二天做  题,第三天做  题,第四天做  题,第五天做  题。因此他总共做了  题。

【样例输入2】

1158

【样例输出2】

12

【样例解释 2】

小杨前 5 天分别做了  题,由于第 5 天小杨做了  题,而 ,于是小杨从此以后不再做题。因此小杨总共做了  题。

参考程序:

'''[GESP202312 二级] 小杨做题https://www.luogu.com.cn/problem/B3923'''a = int(input())b = int(input())m = int(input())n = int(input())ans = a + bfor i in range(3, n + 1):    c = a + b    ans += c    a = b    b = cif c >= m:breakprint(ans)

Day03:GESP三级2024.09_回文拼接

【提交】

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

【问题描述】

一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如, 和  都是回文串,但  不是。

小杨有  个仅包含小写字母的字符串,他想请你编写程序判断每个字符串是否由两个长度至少为  的回文串前后拼接而成。

【输入描述】

第一行包含一个正整数 ,代表字符串数量。

之后  行每行一个仅包含小写字母的字符串。

【输出描述】

对于每个字符串输出一行,如果该字符串由两个长度至少为  的回文串前后拼接而成则输出 Yes,否则输出 No。

【样例输入1】

4abcdaabbbaaacabcdd

【样例输出1】

NoYesNoNo

【提示】

对于第  个字符串,都不是由两个长度至少为  的回文串前后拼接而成。

第  个字符串由回文串  和  前后拼接而成,并且两个回文串长度都至少为 。

对于全部数据,保证有 ,并且每个字符串的长度不超过 。

参考答案:

'''[GESP202409 三级] 回文拼接https://www.luogu.com.cn/problem/B4039'''n = int(input())for i in range(n):    s = input()    j = 1while j <= len(s) - 2:        s1 = s[:j]        s2 = s[j:]if s1 == s1[::-1] and s2 == s2[::-1]:            print("Yes")break        j += 1if j > len(s) - 2:        print("No")

Day03:GESP四级2025.03_二阶矩阵

【提交】

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

【问题描述】

小 A 有一个  行  列的矩阵 。

小 A 认为一个  的矩阵  是好的,当且仅当 。其中  表示矩阵  的第  行第  列的元素。

小 A 想知道  中有多少个好的子矩阵。

【输入描述】

第一行,两个正整数 。

接下来  行,每行  个整数 。

【输出描述】

一行,一个整数,表示  中好的子矩阵的数量。

【样例输入1】

3 41 2 1 02 4 2 10 3 3 0

【样例输出1】

2

【样例解释】

样例中好的子矩阵如下:

【数据范围】

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

参考程序:

'''[GESP202503 四级] 二阶矩阵https://www.luogu.com.cn/problem/B4264'''n, m = list(map(int, input().split()))lst = []ans = 0for _ in range(n):    lst.append(list(map(int, input().split())))for i in range(n - 1):for j in range(m - 1):if lst[i][j] * lst[i + 1][j + 1] == lst[i][j + 1] * lst[i + 1][j]:            ans += 1print(ans)

青少年编程竞赛交流

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

最新文章

随机文章