跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

2024 第十六届蓝桥杯模拟赛(第二期)-Python

综述由AI生成2024 年第十六届蓝桥杯模拟赛(第二期)的部分 Python 解题方案。涵盖质因数求解、最小公倍数计算、异或运算统计及动态规划求最小代价四个典型算法问题。提供了具体的暴力枚举与动态规划思路,并附带完整可运行的 Python 代码示例,适合算法初学者参考学习。

链路追踪发布于 2026/3/29更新于 2026/5/2924 浏览
2024 第十六届蓝桥杯模拟赛(第二期)-Python

一、问题描述

如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问,2024 的最大的质因数是多少?

1、思路:质数判定
2、代码:
def is_prime(x):
    if x == 1:
        return False
    for i in range(2, int(x ** 0.5) + 1):
        if x % i == 0:
            return False
    return True

for i in range(2023, 1, -1):
    if 2024 % i == 0:
        if is_prime(i):
            print(i)
            break
3、结果:23

二、问题描述

对于两个整数 a, b,既是 a 的整数倍又是 b 的整数倍的数称为 a 和 b 的公倍数。公倍数中最小的正整数称为 a 和 b 的最小公倍数。 请问,2024 和 1024 的最小公倍数是多少?

1、思路:暴力枚举
2、代码:
res = 2024
while True:
    if res % 2024 == 0 and res % 1024 == 0:
        print(res)
        break
    else:
        res += 1
3、结果:259072

三、问题描述

两个数按位异或是指将这两个数转换成二进制后,最低位与最低位异或作为结果的最低位,次低位与次低位异或作为结果的次低位,以此类推。 例如,3 与 5 按位异或值为 6。 请问,有多少个不超过 2024 的正整数,与 2024 异或后结果小于 2024。

1、思路:暴力枚举
2、代码:
count = 0
for x in range(1, 2025):
    if (x ^ 2024) < 2024:
        count += 1
print(count)
3、结果:2001

四、问题描述

小蓝有一个整数,初始值为 1,他可以花费一些代价对这个整数进行变换。小蓝可以花费 1 的代价将整数增加 1。小蓝可以花费 3 的代价将整数增加一个值,这个值是整数的数位中最大的那个(1 到 9)。小蓝可以花费 10 的代价将整数变为原来的 2 倍。 例如,如果整数为 16,花费 3 将整数变为 22。 又如,如果整数为 22,花费 1 将整数变为 23。 又如,如果整数为 23,花费 10 将整数变为 46。 请问,如果要将整数从初始值 1 变为 2024,请问最少需要多少代价?

1、思路:动态规划

(1)初始化:创建一个长度为 y+1 的 dp 数组,dp[i] 表示将 1 变成 i 的最小代价,初始化为无穷大,dp[1] = 0。 (2)遍历每个数:遍历从 1 到 y,对于每个数 i,尝试三种操作。 (3)加 1 操作:若 i + 1 <= y,更新 dp[i + 1] 为 min(dp[i + 1], dp[i] + 1)。 (4)加最大数位操作:计算当前数 i 的最大数位 max_digit,若 i + max_digit <= y,更新 dp[i + max_digit]。 (5)乘 2 操作:若 i * 2 <= y,更新 dp[i * 2] 为 min(dp[i * 2], dp[i] + 10)。 (6)返回结果:最终返回 dp[y]。

2、代码:
def min_cost(y):
    dp = [float('inf')] * (y + 1)
    dp[1] = 0
    for i in range(1, y + 1):
        # 加 1
        if i + 1 <= y:
            dp[i + 1] = min(dp[i + 1], dp[i] + 1)
        # 加最大数位
        max_digit = int(max(str(i)))
        if i + max_digit <= y:
            dp[i + max_digit] = min(dp[i + max_digit], dp[i] + 3)
        # 乘 2
        if i * 2 <= y:
            dp[i * 2] = min(dp[i * 2], dp[i] + 10)
    return dp[y]

print(min_cost(2024))

目录

  1. 一、问题描述
  2. 1、思路:质数判定
  3. 2、代码:
  4. 3、结果:23
  5. 二、问题描述
  6. 1、思路:暴力枚举
  7. 2、代码:
  8. 3、结果:259072
  9. 三、问题描述
  10. 1、思路:暴力枚举
  11. 2、代码:
  12. 3、结果:2001
  13. 四、问题描述
  14. 1、思路:动态规划
  15. 2、代码:
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 目标检测标注格式 VOC、COCO 与 YOLO 对比及选型建议
  • 人工智能与机器学习:从理论到实践的技术全景
  • 数据结构:二叉树初阶与实现
  • RAG 技术演进与七大架构深度解析
  • 向日葵 MCP 接入 AI:无需额外设备支持多平台远程控制
  • 字节跳动 DeerFlow 2.0 技术解析:多智能体协作框架与实战部署
  • 基于 Docker 部署 PDFMathTranslate 实现数学文档翻译
  • Copilot 的 agent、ask、edit、plan 模式区别
  • 基于 Python 的阿布量化交易框架
  • AI 时代,写作为何成为比编程更核心的元技能
  • Cursor Chat Browser:管理 AI 聊天历史的 Web 应用
  • 时序数据库选型指南:工业物联网场景首选 Apache IoTDB
  • Python SyntaxError: invalid syntax 常见原因及解决方法
  • 哈希表总结与题型扩展:外星字典序与连续数组
  • Visual C++ 运行库 AIO 安装工具使用指南
  • Java Web 开发基础 (1) —— Spring Web MVC
  • Python 模块级懒加载实战:基于 __getattr__ 的性能优化
  • 前端网页开发基础:HTML、CSS 与 JavaScript 入门指南
  • 零成本搭建飞书机器人:基于 Webhook 的高效消息推送实践
  • 停车场收入统计算法题解

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online