蓝桥杯第十三届省赛题目(4月23日)答案汇总 python

目录

第一题:

思路:

代码:

第二题:

思路:

代码:

第三题:

思路:

代码:

第四题:

思路:

代码:

第五题:

思路:

代码:

第六题:

思路:

代码:


不知道题的看这里:第十三届蓝桥杯省赛python4月23日题目汇总_悦儿姐的博客-CSDN博客

第一题:

思路:

直接拼,十分简单

代码:

S1=input()
S2=input()
print(S1+S2)

温馨小提示:题目中给你什么变量,你在代码中就尽量用什么变量。

第二题:

思路:

很容易想到列表的一个非常nice的功能,max。你如果就爱玩那麻烦的,就排个序,再打印。

代码:

N=input()
a=[int(i) for i in N]  # 列表表达式 
print(max(a))

这里运用了一个列表表达式,可以省去不必要的麻烦。i代表列表里的各个元素 整个式子翻译过来就是:i在N里遍历,每次的i变成数字再在a列表里变成元素

第三题:

思路:

就是小学的加减运算,小青伸手高度是a(就是举个例子,在题里人家说的是N),竹竿长度是b,给的苹果高度c,求a+b大不大于c就好

代码:

N=int(input())
M=list(eval(input()))  # 万能公式
s=0
for i in M:
    if N+80 >= i:
        s+=1
print(s)

万能公式是指,如果你输入进来的是一个数字字符串,用英文逗号隔开,eval它,可以把它变成数字元组(逗号没了,一个个数字变成一个个元素),再list它,可以把它变成列表。

例如:输入:1,2,3,4,5 eval前:‘1,2,3,4,5’ eval后:(1,2,3,4,5) list后:[1,2,3,4,5]

第四题:

思路:

是一个递归的思路,观察可知,当N=1/2/3时,它们的方案分别为1、2、4,没有规律。但当N>=4时,N就有规律了。N(N>=4)的方案数=(N-1的方案数)+(N-2的方案数)+(N-3的方案数)。具体解析看这里哦:第十三届蓝桥杯省赛真题2022年4月23日 第四题答案及解析 小马过河搬货物方案_悦儿姐的博客-CSDN博客

代码:

N = int(input())  # 输入一个数(代表物品数)
def f(N):  # 创建一个递归函数
    if N == 1:  # 当N等于1、2、3时,结果没有规律,所以直接返回结果
        return 1
    elif N == 2:
        return 2
    elif N == 3:
        return 4
    else:
        return f(N-1)+f(N-2)+f(N-3)  # 规律直接用:N的方案数=(N-1的方案数)+(N-2的方案数)+(N-3的方案数)
print(f(N))  # 最终打印结果

第五题:

思路:

可以采用一种“污海”的思路:找到一块海,在它的下面一直找,左面一直找,找到一个“污”一个(即把1变成0),这样便能找到全部的未被污染的海域还能既不重复也不遗漏了!详细解析看这里:2022年4月23日第十三届省赛蓝桥杯真题答案_python_第五题_统计未被污染的海域_悦儿姐的博客-CSDN博客

代码:

 
def find_right(j,g,M):  # 右边找找(M后期赋值 列的意思)
    global s
    d=0  # 纯净海域数
    while g0 and s[j-1][g]==1)) and ((g0 and s[j][g-1]==1)):  
#  既满足下边有或者上边有 还满足 右边有或者左边有 
                y+=1  # 拐角数+1

for j in range(N):
    for g in range(M):
        if s[j][g]==1:
            if g

第六题:

思路:

这题直接暴力解就好了。没什么技巧。详细解析看这里:2022年_蓝桥杯_省赛_4月23日真题_第十三届_python_第六题_小蓝对角线找奖品_悦儿姐的博客-

代码:

n=input()  # 输入行和列
N=int(n[0])  # 行就是第一个
M=int(n[2])  # 去掉空格来算,列是第三个
s=[]  # 创建一个列表,里面要装所有的格子
d=0  # 输出结果(最长奖品对角线)
for i in range(N):  # 搞N行的输入框
    c=input()[::2]  # 去掉空格
    c=[int(i) for i in c]  # 转成数字
    s.append(c)  # 装进大列表里
def find_left(i,j,s):  #  进行左对角线寻找 i是行数索引号,j是列数索引号
    global N  # 把N搞成全局变量,要用一下它
    h=1  # 对角线奖品数
    x=i  # 给i和j搞个备份
    y=j
    a=0  # 用来判断矩形是否只有一条对角线的东东
    if s[i][j] == 1:  # 看看第一个是不是有奖品
        while (j>0 and id and e>f else f if f>d else d  # 这里运用了一个三目运算符
#  返回e 得满足e>d和e>f。要不就是f 得满足f>d(因为e已经小于f了 就不比了)。都不是返回d 
print(d)

文章到这里就结束啦,如果你做出来了一些题,跟我有不一样的意见,或者有好的代码,那就尽情发给我吧,评论私信都可以哈。欢迎三连(点赞、关注、收藏)最后发起一个小投票,有兴趣的投一下。

你可能感兴趣的:(蓝桥杯,python)