Advertisement

Python编程版蓝桥杯题库及答案.docx

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:DOCX


简介:
这份文档包含了针对Python编程爱好者的蓝桥杯竞赛题目及其参考答案,旨在帮助学习者提高编程技能和竞赛水平。 蓝桥杯题库及答案 Python 版 这是一道结果填空的题目,只需要算出一个整数作为结果提交即可。 输入字符串后计算其不同子串的数量: ```python input_str = input() num = len(input_str) searched = [] for i in range(num): for j in range(num - i): # 确保不超出范围 substring = str(input_str[j:j + i + 1]) if substring not in searched: searched.append(substring) print(len(searched)) ``` 输出结果为:100 (2)年号字串问题: 小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于大于等于27的数字,则使用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对应 28,LQ 对 应329。请问数字 2019 对应的是哪个字符串? 这题实际上是一个进制转换问题,将十进制数转化为以字母表示的“26进制”。 ```python string = ABCDEFGHIJKLMNOPQRSTUVWXYZ num = 2019 yu = [] while num >= 26: yu.append(num % 26) num //= 26 yu.append(num) for i in yu[::-1]: print(string[i - 1], end=) ``` 该代码会输出结果为 BYQ。 ### 蓝桥杯题库及答案 Python 编程版知识点解析 #### 第一:字符串子串统计 编写一个Python程序,读取输入的字符串,并统计其中所有不同子串的数量。 ```python input_str = input() num = len(input_str) searched = [] for i in range(num): for j in range(num - i): # 确保不超出范围 substring = str(input_str[j:j + i + 1]) if substring not in searched: searched.append(substring) print(len(searched)) ``` 解析:这段代码实现了对输入字符串中的所有可能子串进行统计,并打印出这些子串的数量。它通过两层嵌套循环遍历字符串的所有子串,使用列表`searched`来存储已遇到的不同子串以避免重复计算。 #### 第二:年号字串 根据小明设计的编码规则,用字母A到Z分别代表数字1到26,对于大于等于27的数字,则使用两位或更长位字符串表示。例如 AA 对应 27, AB 对应 28 等等。 ```python string = ABCDEFGHIJKLMNOPQRSTUVWXYZ num = 2019 yu = [] while num >= 26: yu.append(num % 26) num //= 26 yu.append(num) for i in yu[::-1]: print(string[i - 1], end=) ``` 解析:此题可以通过将十进制数转换为以字母表示的“26进制”来解决。通过循环不断地将`num`除以26取余,保存到列表中,并映射到对应的字符串。 #### 第三:数列求值 给出一个数列的前几项1, 1, 1, 3, 5, 9, 17,…,从第四项开始每一项都是前三项之和。要求计算第N项的最后4位数字。 ```python N = # 输入 N 的值 arr = [0] * N arr[0] = arr[1] = arr[2] = 1 for i in range(3, N): arr[i] = (arr[i - 1] + arr[i - 2] + arr[i - 3]) % 10000 print(arr[N - 1]) ``` 解析:通过动态规划的方式构建数列,每次计算新项时都保留最后四位数字,最终输出第N项的最后4位数字。 #### 第四:数的分解 将数字2019分解为3个各不相同的正整数之和,并且每个整数中不能包含数字2和4。求有多少种不同的分解方法(不考虑顺序)。 ```python n = 2019 count = 0 def check(n): n_str = list(str(n)) if 2 not in n_str and 4 not in n_str: return True return False for i in range(1, 676): for j in range(i + 1, min(1345, n - i)): if check(i) and check(j): k = n - i - j if

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Python.docx
    优质
    这份文档包含了针对Python编程爱好者的蓝桥杯竞赛题目及其参考答案,旨在帮助学习者提高编程技能和竞赛水平。 蓝桥杯题库及答案 Python 版 这是一道结果填空的题目,只需要算出一个整数作为结果提交即可。 输入字符串后计算其不同子串的数量: ```python input_str = input() num = len(input_str) searched = [] for i in range(num): for j in range(num - i): # 确保不超出范围 substring = str(input_str[j:j + i + 1]) if substring not in searched: searched.append(substring) print(len(searched)) ``` 输出结果为:100 (2)年号字串问题: 小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于大于等于27的数字,则使用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对应 28,LQ 对 应329。请问数字 2019 对应的是哪个字符串? 这题实际上是一个进制转换问题,将十进制数转化为以字母表示的“26进制”。 ```python string = ABCDEFGHIJKLMNOPQRSTUVWXYZ num = 2019 yu = [] while num >= 26: yu.append(num % 26) num //= 26 yu.append(num) for i in yu[::-1]: print(string[i - 1], end=) ``` 该代码会输出结果为 BYQ。 ### 蓝桥杯题库及答案 Python 编程版知识点解析 #### 第一:字符串子串统计 编写一个Python程序,读取输入的字符串,并统计其中所有不同子串的数量。 ```python input_str = input() num = len(input_str) searched = [] for i in range(num): for j in range(num - i): # 确保不超出范围 substring = str(input_str[j:j + i + 1]) if substring not in searched: searched.append(substring) print(len(searched)) ``` 解析:这段代码实现了对输入字符串中的所有可能子串进行统计,并打印出这些子串的数量。它通过两层嵌套循环遍历字符串的所有子串,使用列表`searched`来存储已遇到的不同子串以避免重复计算。 #### 第二:年号字串 根据小明设计的编码规则,用字母A到Z分别代表数字1到26,对于大于等于27的数字,则使用两位或更长位字符串表示。例如 AA 对应 27, AB 对应 28 等等。 ```python string = ABCDEFGHIJKLMNOPQRSTUVWXYZ num = 2019 yu = [] while num >= 26: yu.append(num % 26) num //= 26 yu.append(num) for i in yu[::-1]: print(string[i - 1], end=) ``` 解析:此题可以通过将十进制数转换为以字母表示的“26进制”来解决。通过循环不断地将`num`除以26取余,保存到列表中,并映射到对应的字符串。 #### 第三:数列求值 给出一个数列的前几项1, 1, 1, 3, 5, 9, 17,…,从第四项开始每一项都是前三项之和。要求计算第N项的最后4位数字。 ```python N = # 输入 N 的值 arr = [0] * N arr[0] = arr[1] = arr[2] = 1 for i in range(3, N): arr[i] = (arr[i - 1] + arr[i - 2] + arr[i - 3]) % 10000 print(arr[N - 1]) ``` 解析:通过动态规划的方式构建数列,每次计算新项时都保留最后四位数字,最终输出第N项的最后4位数字。 #### 第四:数的分解 将数字2019分解为3个各不相同的正整数之和,并且每个整数中不能包含数字2和4。求有多少种不同的分解方法(不考虑顺序)。 ```python n = 2019 count = 0 def check(n): n_str = list(str(n)) if 2 not in n_str and 4 not in n_str: return True return False for i in range(1, 676): for j in range(i + 1, min(1345, n - i)): if check(i) and check(j): k = n - i - j if
  • 大学生
    优质
    《大学生蓝桥杯试题库及答案》汇集了历届蓝桥杯竞赛真题与解析,覆盖C/C++、Java和Python等主流编程语言,旨在帮助参赛者提升编程技能,熟悉比赛模式。 真题包括第10到14届蓝桥杯的题目及答案,还有练习题汇总整理。
  • 模拟试.zip
    优质
    《蓝桥杯模拟试题及答案》是一份包含历年蓝桥杯竞赛真题与解析的资料集,帮助参赛者熟悉比赛形式和提高编程技能。 内容概要:本段落全面介绍了蓝桥杯比赛,包括其背景、历年试题汇总、相关练习资源以及学习建议。 适用人群:此资源适合所有对编程感兴趣的学生,特别是那些计划参加蓝桥杯比赛的人。 使用场景及目标:通过这份资料,用户可以了解蓝桥杯的比赛内容和准备策略,并掌握如何通过练习提高自己的编程技能。
  • Java组历届真
    优质
    本书汇集了历年蓝桥杯大赛中关于Java编程语言的真题及其详细解答,旨在帮助参赛者熟悉竞赛模式、提高解题技巧和编程能力。 蓝桥杯历年试题及答案整理得很详细,非常棒。这些资料经过了很长时间的整理和完善。
  • 第15届Python(10月29日)
    优质
    本资料包含第15届蓝桥杯Python编程语言组比赛的真实试题与详细解答,发布日期为2023年10月29日。 第15届青少年编程Python-STEMA于2021年10月29日举行的真题及答案。
  • 历届试
    优质
    《蓝桥杯历届试题与答案》汇集了历年蓝桥杯竞赛的真题及解析,旨在帮助参赛者熟悉比赛形式、掌握解题技巧和提高编程能力。 文件包含历年的蓝桥杯预赛试题以及部分决赛试题(2010-2014),还有全面的答案,可以给竞赛选手带来帮助。
  • Java历届真汇总
    优质
    本资料汇集了历年“蓝桥杯”竞赛中Java编程组的真实试题及其参考答案,旨在帮助参赛者进行高效备考和学习。 整理了蓝桥杯Java历年真题及答案,包含100多道题目及其解答,供参加蓝桥杯Java组比赛的学生参考学习。
  • 练习汇总参考
    优质
    本资源汇集了历届蓝桥杯竞赛的练习题目,并提供了详细的解答和解析,旨在帮助参赛者熟悉比赛形式,提升编程技能。 蓝桥杯练习系统题目汇总(含参考答案)pdf版本,代码可复制。
  • OJ
    优质
    蓝桥杯OJ题库是专为编程竞赛爱好者设计的在线题目平台,汇集了历届蓝桥杯大赛的真实赛题及大量练习题,旨在帮助参赛者提升算法和编程能力。 OJ系统的蓝桥杯题库里有一些示例题目。