码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 第十三届蓝桥杯Python B组国赛题解


    第十三届蓝桥杯Python B组国赛题解

    • 试题A:斐波那契与7
    • 试题 B: 小蓝做实验
    • 试题 C: 取模
    • 试题 D: 内存空间
    • 试题 E: 近似 GCD
    • 试题 F: 交通信号
    • 试题 G: 点亮
    • 试题 H: 打折
    • 试题 I: owo
    • 试题 J: 替换字符

    写在开头:题解全部为个人思路,仅供参考
    获奖情况:国赛二等奖(50分左右,应该不到50分)

    试题地址https://www.aliyundrive.com/s/QBKYnUpeh3v
    提取码: d59a

    题解还没有全部写完,持续更新

    试题A:斐波那契与7

    在这里插入图片描述

    """
    题意分析
       题目中问电脑为个位上7的个数,所以只考虑个位就行,不用在考虑其他位,
       即结果只保留个位就行
       肯定有规律,我们只需要找到找个规律就行
    """
    f1 = 0
    f2 = 1
    f3 = 1
    c = 0   # 统计出现的次数
    for i in range(60):
        print(f3, end=' ')  # 斐波那契数列中的数字
        f3 = (f1+f2)%10
        if f3 ==7:
            c+=1
        f1 = f2
        f2 = f3
    # 1 1 2 3 5 8 3 1 4 5 9 4 3 7 0 7 7 4 1 5 6 1 7 8 5 3 8 1 9 0 9 9 8 7 5 2 7 9 6 5 1 6 7 3 0 3 3 6 9 5 4 9 3 2 5 7 2 9 1 0
    # 经过验证,60个一循环 每个循环里面有8个个位为7的数字
    print()
    print(c)
    print(202202011200//60)  # 一共3370033520次循环
    print((202202011200//60)*8) # 26960268160
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    答案为:26960268160

    试题 B: 小蓝做实验

    在这里插入图片描述比赛时想用质数筛来解决问题,但是代码没有跑完,不知道哪里的问题
    质数筛解题 关于质数筛看这个

    试题 C: 取模

    在这里插入图片描述

    # 暴力
    t = int(input())
    nums = []
    for i in range(t):
        n,m = input().split()
        n = int(n)
        m = int(m)
        f = False
        for j in range(1,m+1):
            if f:
                break
            for k in range(j+1,m+1):
                if n%j==n%k:
                    f = True
                    nums.append('Yes')
                    break
            
        else:
            nums.append('No')
    for i in nums:
        print(i)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    试题 D: 内存空间

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    t = int(input())
    zong = 0 # 总大小,单位B
    for i in range(t):
        s_lst = input().split()
        if s_lst[0] == 'int':     # 根据不同的输入情况进行分类
            st1 = s_lst[1].split(',')
            zong+=len(st1)*4  
        elif s_lst[0] == 'long':
            st1 = s_lst[1].split(',')
            zong+=len(st1)*8 
        elif  s_lst[0] == 'String':
            st1 = s_lst[1].split(',')
            num = 0
            for item in st1:
                num+=len(item.split('=')[1])-2
            zong+=num-1
        elif s_lst[0] == 'int[]':
            num = 0
            for it in range(1,len(s_lst)):
                if 'long' in s_lst[it] and ';' not in s_lst[it]:
                    num += int(s_lst[it][4:-1])
                elif 'long' in s_lst[it] and ';' in s_lst[it]:
                    num += int(s_lst[it][4:-2])
            zong+=num*4
        elif  s_lst[0] == 'long[]':
            num = 0
            for it in range(1,len(s_lst)):
                if 'long' in s_lst[it] and ';' not in s_lst[it]:
                    num += int(s_lst[it].split(',')[0][5:-1])
                elif 'long' in s_lst[it] and ';' in s_lst[it]:
                    num += int(s_lst[it][5:-2])
                    
            zong+=num*8
    
    z = [0,0,0,0]   # B,KB,MB,GB 前的数值
    for i in range(4):
        z[i]=zong%1024
        zong = zong//1024
        if zong <=0:
            break
    
    result = ''
    result_st = ['GB','MB','KB','B']
    for i in range(1,len(z)+1):
        if z[4-i] != 0:
            result+=f'{z[4-i]}{result_st[i-1]}'
    print(result)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    试题 E: 近似 GCD

    在这里插入图片描述
    在这里插入图片描述

    试题 F: 交通信号

    在这里插入图片描述
    在这里插入图片描述

    试题 G: 点亮

    在这里插入图片描述
    在这里插入图片描述

    试题 H: 打折

    在这里插入图片描述
    在这里插入图片描述

    试题 I: owo

    在这里插入图片描述

    试题 J: 替换字符

    在这里插入图片描述
    主要采用了切片和replace()函数

    s = input()
    m = int(input())
    for i in range(m):
        nums = input().split()
        l = int(nums[0])
        r = int(nums[1])
        x = nums[2]
        y = nums[3]
    
        s1 = s[0:l-1]
        s2 = s[l-1:r]
        s3 = s[r:]
        s2 = s2.replace(x,y)
        s = s1+s2+s3
    print(s)
        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    HANA 常用数据类型详解
    [附源码]计算机毕业设计社区疫情防控信息管理系统Springboot程序
    陈吉宁经典演讲:平庸与卓越的差别
    OpenText EnCase 客户案例——Banner Health 医疗机构
    java毕业设计点餐系统的设计与实现mybatis+源码+调试部署+系统+数据库+lw
    Spring Boot 之Thymeleaf的爆红用注解【<!--/*@thymesVar id=“data“ type=“ch“*/-->】解决
    前端面试(1)——准备
    从 AI 代码生成模型到 AI 编程助手应用实战
    VS2019编译配置Easy3D
    【Java】SpringBoot应用简单示例
  • 原文地址:https://blog.csdn.net/qq_52007481/article/details/125612645
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号