第十四届蓝桥杯模拟赛第三期填空题(python)

您所在的位置:网站首页 ff等于十进制多少 第十四届蓝桥杯模拟赛第三期填空题(python)

第十四届蓝桥杯模拟赛第三期填空题(python)

2023-11-20 19:41| 来源: 网络整理| 查看: 265

第一题  问题描述   请找到一个大于 2022 的最小数,这个数转换成十六进制之后,所有的数位(不含前导 0)都为字母(A 到 F)。   请将这个数的十进制形式作为答案提交。 答案提交   这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

 将数字转成十六进制,在鉴别是否都为字幕组成。

for i in range(2022,4000): s = str(hex(i))[2:] flag = 0 for j in s: if j not in ["a","b","c","d","e","f"]: flag = 1 if flag == 0: print(i) break

答案:2730

第二题  问题描述   在 Excel 中,列的名称使用英文字母的组合。前 26 列用一个字母,依次为 A 到 Z,接下来 26*26 列使用两个字母的组合,依次为 AA 到 ZZ。   请问第 2022 列的名称是什么? 答案提交   这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个由大写字母组成的字符串,在提交答案时只填写这个字符串,填写多余的内容将无法得分。

二十六进制计数,除数取余就好 。

答案:BYT

第三题   问题描述   对于一个日期,我们可以计算出年份的各个数位上的数字之和,也可以分别计算月和日的各位数字之和。请问从 1900 年 1 月 1 日至 9999 年 12 月 31 日,总共有多少天,年份的数位数字之和等于月的数位数字之和加日的数位数字之和。   例如,2022年11月13日满足要求,因为 2+0+2+2=(1+1)+(1+3) 。   请提交满足条件的日期的总数量。 答案提交   这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

datetime库 

import datetime def check(time): year, month, day = time.split('-') num1, num2, num3 = 0, 0, 0 for i in year: num1 += int(i) for i in month: num2 += int(i) for i in day: num3 += int(i) if num1 == num2 + num3: return True else: return False ans = 0 start = datetime.date(1900, 1, 1) end = datetime.date(9999, 12, 31) while start = 2022: ans += 1 print(ans)

 答案:189

第五题  问题描述   小蓝有一个 30 行 60 列的数字矩阵,矩阵中的每个数都是 0 或 1 。   110010000011111110101001001001101010111011011011101001111110   010000000001010001101100000010010110001111100010101100011110   001011101000100011111111111010000010010101010111001000010100   101100001101011101101011011001000110111111010000000110110000   010101100100010000111000100111100110001110111101010011001011   010011011010011110111101111001001001010111110001101000100011   101001011000110100001101011000000110110110100100110111101011   101111000000101000111001100010110000100110001001000101011001   001110111010001011110000001111100001010101001110011010101110   001010101000110001011111001010111111100110000011011111101010   011111100011001110100101001011110011000101011000100111001011   011010001101011110011011111010111110010100101000110111010110   001110000111100100101110001011101010001100010111110111011011   111100001000001100010110101100111001001111100100110000001101   001110010000000111011110000011000010101000111000000110101101   100100011101011111001101001010011111110010111101000010000111   110010100110101100001101111101010011000110101100000110001010   110101101100001110000100010001001010100010110100100001000011   100100000100001101010101001101000101101000000101111110001010   101101011010101000111110110000110100000010011111111100110010   101111000100000100011000010001011111001010010001010110001010   001010001110101010000100010011101001010101101101010111100101   001111110000101100010111111100000100101010000001011101100001   101011110010000010010110000100001010011111100011011000110010   011110010100011101100101111101000001011100001011010001110011   000101000101000010010010110111000010101111001101100110011100   100011100110011111000110011001111100001110110111001001000111   111011000110001000110111011001011110010010010110101000011111   011110011110110110011011001011010000100100101010110000010011   010011110011100101010101111010001001001111101111101110011101   如果从一个标为 1 的位置可以通过上下左右走到另一个标为 1 的位置,则称两个位置连通。与某一个标为 1 的位置连通的所有位置(包括自己)组成一个连通分块。   请问矩阵中最大的连通分块有多大? 答案提交   这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得。

 BFS,统计出遍历过的点数,比出最大的连通分块。

def BFS(a, i, j, flag): if i < 1 or i > 30 or j < 1 or j > 60: return False if a[i][j] == 0 or flag[i][j] == 1 : return False flag[i][j] = 1 BFS(a, i - 1, j, flag) BFS(a, i + 1, j, flag) BFS(a, i, j - 1, flag) BFS(a, i, j + 1, flag) def Calculate(a): flag = [[0] * N for _ in range(M)] max_num = 0 for i in range(1,31): for j in range(1,61): if a[i][j] == 1 and flag[i][j] == 0: BFS(a, i, j, flag) num = sum([sum(row) for row in flag]) max_num = max(max_num, num) flag = [[0] * N for _ in range(M)] return max_num M, N = 40, 70 a = [[0] * N for _ in range(M)] for i in range(1, 31): a[i][1:61:] = map(int, list(input())) print(Calculate(a))

答案:148 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3