Advertisement

蓝桥杯第十一届青少年Python组省赛试题

阅读量:

该文本包含多个编程题目及解答,涉及以下内容:
第一个代码将输入字符串中的大写字母转换为对应的数字(A=1,B=2,...,Z=26)。
第二个代码判断一个数是否为完全数(即该数等于其所有真因数之和)。
第三个代码使用欧几里得算法计算两个数的最大公约数。
第四个代码通过动态规划解决背包问题,判断是否能用给定的物品装满背包。
第五个代码处理日期和月份,将日期转换为特定的数值形式。
第六个代码根据输入日期和节气列表,判断当前日期对应的节气。
这些代码涵盖了字符串处理、数学计算、动态规划、日期处理和节气判断等多个编程知识点。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
复制代码
    选择题答案:ADDCA
在这里插入图片描述
复制代码
    s=input()
    if s[-2:]=='er' or s[-2:]=='ly':
    s=s[:-2]
    elif s[-3:]=='ing':
    s=s[:-3]
    print(s)
在这里插入图片描述
复制代码
    n=int(input())
    cnt=0
    for i in range(2,n):
    s=0
    for j in range(1,i):
        if i%j==0:
            s+=j
    if s==i:
        print(i)
        cnt+=1
    print('*'+str(cnt))
在这里插入图片描述
复制代码
    a=int(input())
    s=a*a/2/2
    print(f'{s:.2f}')
在这里插入图片描述
复制代码
    s=input()
    ss=''
    for c in s:
    if c==' ':
        o=' '
    else:
        o=ord(c)-96
        if o<10:
            o='0'+str(o)
    ss+=o
    sss=''
    for c in ss:
    if c==' ':
        o='00'
    else:
        o=str(ord(c)-21)
    sss+=o
    print(sss)
在这里插入图片描述
复制代码
    v=int(input())
    n=int(input())
    sizes=[int(input()) for i in range(n)]
    def put(v,n):
    if n==0:    #没石头放了
        return v
    elif v==0:   #背包没容量了
        return 0
    elif v<sizes[n-1]:    #背包容量放不下排最后这块石头
        return put(v,n-1)    #不放最后这块石头,背包容量不变,石头丢掉数量减一
    else:
        a=put(v-sizes[n-1],n-1)  #放最后这块石头
        b=put(v,n-1)    #不放最后这块石头,背包容量不变,石头丢掉数量减一
        return min(a,b)
    print(put(v,n))
在这里插入图片描述
复制代码
    jq='''
    小寒 XH 1.5 大寒 DH 1.20 立春 LC 2.4 雨水 YS 2.19 惊蛰 JZ 3.5 春分 CF 3.20 清明 QM 4.4 谷雨 GY 4.19
    立夏 LX 5.5 小满 XM 5.20 芒种 MZ 6.5 夏至 XZ 6.21 小暑 XS 7.6 大暑 DS 7.22
    立秋 LQ 8.7 处暑 CS 8.22 白露 BL 9.7 秋分 QF 9.22 寒露 HL 10.8 霜降 SJ 10.23
    立冬 LD 11.7 小雪 XX 11.22 大雪 DX 12.7 冬至 DZ 12.21
    '''
    jqs=jq.split()
    jq_sx=jqs[1::3]
    jq_rq=jqs[2::3]
    
    jq_new_rq=[]
    for rq in jq_rq:
    rqs=rq.split('.')
    if len(rqs[1])==1:
        rqs[1]='0'+rqs[1]
    new_rq=int(rqs[0]+rqs[1])
    jq_new_rq.append(new_rq)
    
    s=input().split('*')
    month=s[1]
    day=s[2]
    new_s=int(month+day)
    if new_s>=1221:
    new_s=0
    
    for rq in jq_new_rq:
    if rq>=new_s:
        i=jq_new_rq.index(rq)
        print(jq_sx[i])
        break

全部评论 (0)

还没有任何评论哟~