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

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

提示:前五题是填空,不需要提交代码。


知识点:

1、质因数、质数、约数。

2、动态规划(dp)。

3、思维。 


 

一、【问题描述】

如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。

请问, 2024 的最大的质因数是多少?【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1、思路:质数的判定https://www.acwing.com/file_system/file/content/whole/index/content/4443622/

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 else: continue 

3、结果:23

 


 二、【问题描述】

对于两个整数 a, b,既是 a 的整数倍又是 b 的整数倍的数称为 a 和 b 的公倍数。公倍数中最小的正整数称为 a 和 b 的最小公倍数。

请问, 2024 和 1024 的最小公倍数是多少?【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

1、思路:暴力

2、代码:

res=2024 while(1): 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],即将1变为y的最小代价。

 

2、代码:

def min_cost(y): dp=[float('inf')]*(y+1) # dp[x]表示将整数1变为x的最小代价 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))) # 找到当前数的最大数位 

Read more

【MySQL】第八节—表的增删改查,吃透这篇就够了(下)

【MySQL】第八节—表的增删改查,吃透这篇就够了(下)

Hi,我是云边有个稻草人-ZEEKLOG博客个人主页,今天结束表的增删改查,继续! 《MySQL》本篇文章所属专栏—持续更新中!   目录 三、Update 3.1【将孙悟空同学的数学成绩变更为 80 分】 3.2【将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分】 3.3【将总成绩倒数前三的 3 位同学的数学成绩加上 30 分】 3.4【将所有同学的语文成绩更新为原来的 2 倍】 四、Delete 4.1 删除数据 【删除孙悟空同学的考试成绩】 【删除总分倒数第一的同学信息】 【删除整张表数据】 4.2 截断表 五、去重数据表,插入查询结果 六、

By Ne0inhk
【Spring MVC】一篇文章带你吃透 SpringMVC 请求

【Spring MVC】一篇文章带你吃透 SpringMVC 请求

🎬 那我掉的头发算什么:个人主页 🔥 个人专栏: 《javaSE》《数据结构》《数据库》《javaEE》 ⛺️待到苦尽甘来日 引言 上回说到,SpringMVC主要涉及三个方面——建立连接、请求、响应。建立连接的部分我们已经了解了,创建请求的工具我们也介绍了。下面,我们将详细的去学习请求与响应的具体实现! 文章目录 * 引言 * 请求 * 传递单个参数 * 传递多个参数 * 传递对象 * 后端参数重命名(后端参数映射) * 传递数组 * 传递集合 * 传递JSON * 获取url中的参数@PathVariable * 上传文件@RequestPart * 获取Cookie/Session * 获取Header 请求 访问不同的路径, 就是发送不同的请求. 在发送请求时, 可能会带⼀些参数, 所以学习Spring的请求, 主要是学习如何传递参数到后端以及后端如何接收。 传递单个参数 简单的参数传递上一节已经提到过了,诸如下面的代码,运行之后,在url中传递keyword的值,就可

By Ne0inhk
Flutter 组件 dart_dev 适配鸿蒙 HarmonyOS 实战:效能基座方案,构建全生命周期自动化开发流水线与研发套件治理架构

Flutter 组件 dart_dev 适配鸿蒙 HarmonyOS 实战:效能基座方案,构建全生命周期自动化开发流水线与研发套件治理架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 dart_dev 适配鸿蒙 HarmonyOS 实战:效能基座方案,构建全生命周期自动化开发流水线与研发套件治理架构 前言 在鸿蒙(OpenHarmony)生态迈向大规模工业化协同、涉及海量跨端功能并发验证及严苛代码交付质量标准的背景下,如何实现研发流程的“机器化”约束,已成为决定团队产出稳定性与效能上限的关键。在鸿蒙设备这类强调 AOT 极致性能与多包(HAP/HSP)协同部署的环境下,如果研发环节依然依赖分散的散装脚本或非标的 Git 工作流,由于由于环境配置的微差异,极易由于由于“本地通过,远端爆炸”导致集成交付效率的高频损耗。 我们需要一种能够统一任务调度(Task Runner)、支持全量规范校验且具备“一站式”研发脚本治理能力的基座方案。 dart_dev 为 Flutter 开发者引入了“研发即代码(Dev-as-Code)

By Ne0inhk
RabbitMQ如何成为分布式系统的“神经中枢“?——从安装部署到C++调用实战的完整流程,带你体验它的奥妙所在!​

RabbitMQ如何成为分布式系统的“神经中枢“?——从安装部署到C++调用实战的完整流程,带你体验它的奥妙所在!​

文章目录 * 本篇摘要 * ①·RabbitMq(轻量级消息队列中间件) 介绍 * RabbitMQ 是什么? * 核心功能与特点 * 1. **核心功能** * 2. **核心优势** * RabbitMQ 的核心概念 * 1. **生产者(Producer)** * 2. **消费者(Consumer)** * 3. **队列(Queue)** * 4. **交换机(Exchange)** * 5. **绑定(Binding)** * 工作流程(以 Direct 交换机为例) * 常见应用场景 * RabbitMQ 与相关技术对比 * 图像理解 * 总结一句话 * ②·RabbitMq 安装教程 * RabbitMq安装 * **1. 安装 RabbitMQ** * **2. 启动 & 检查状态** * **3. 创建管理员用户(

By Ne0inhk