大一新生备战蓝桥杯c/c++B组——2024年省赛真题解题+心得分享

server/2025/3/15 6:14:45/

一,握手问题

这个题用点像小学奥数,直接手算就行

答案:1204

二,小球反弹

这个题思路简单,但是运行会显示超时。在思考思考,后续补代码。

三,好数

思路一: 

#include <iostream>
using namespace std;bool isGoodNumber(int n) {for(int i = 1; n > 0; i++) // 从最低位开始,i表示当前是第几位,i++位数加1{int digit = n % 10;  // 取出当前位的数字if ((i % 2 == 1 && digit % 2 != 1) || (i % 2 == 0 && digit % 2 != 0)) {return false;  // 如果当前位不满足条件,返回false}n = n / 10;  // 去掉最低位// 位数加1}return true;  // 所有位都满足条件,返回true
}int main() {int N;cin >> N;int count = 0;for (int n = 1; n <= N; n++) {if (isGoodNumber(n)) {count++;  // 如果是好数,计数器加1}}cout << count;return 0;
}

思路二:

#include <iostream>
using namespace std;int main() {int N;cin >> N;int count = 0;  // 记录“好数”的数量for (int n = 1; n <= N; n++) {int temp = n;  // 使用临时变量,避免修改外层循环的 nbool isGood = true;  // 假设当前数字是“好数”int i = 1;  // 位数计数器,从最低位开始while (temp > 0) {int digit = temp % 10;  // 取出当前位的数字// 检查当前位是否满足条件if ((i % 2 == 1 && digit % 2 != 1) || (i % 2 == 0 && digit % 2 != 0)) {isGood = false;  // 如果某一位不满足条件,标记为不是“好数”break;  // 跳出内层循环}temp = temp / 10;  // 去掉最低位i++;  // 位数加1}if (isGood) {count++;  // 如果当前数字是“好数”,计数器加1}}cout << count;  // 输出“好数”的数量return 0;
}

解释代码 

  1. 临时变量 temp

    • 在内层循环中,使用 temp 来保存当前正在检查的数字,避免修改外层循环的 n

  2. 标志变量 isGood

    • 初始值为 true,假设当前数字是“好数”。

    • 如果某一位不满足条件,将 isGood 设置为 false 并跳出内层循环。

  3. 位数计数器 i

    • 从最低位开始,逐位检查数字的每一位是否满足“好数”的条件。

  4. 条件判断

    • 如果当前位是奇数位(i % 2 == 1),则检查数字是否为奇数(digit % 2 == 1)。

    • 如果当前位是偶数位(i % 2 == 0),则检查数字是否为偶数(digit % 2 == 0)。

  5. 计数

    • 如果当前数字是“好数”,则增加计数器 count

四,R格式

思路:

#include <iostream>   // 用于输入输出操作
#include <cmath>      // 提供pow()和round()数学函数
using namespace std;int main() {int n;            // 转换参数n,必须是整数double d;         // 待转换的浮点数d,题目保证d>0// 输入处理:按顺序读取整数n和浮点数dcin >> n >> d;    // 示例输入:3 9.14// 计算 d * 2^n(使用pow函数计算2的n次方)double m = d * pow(2, n); // 示例计算:9.14 * 8 = 73.12// 四舍五入到最近的整数,使用long long避免溢出long long ans = round(m); // 示例结果:round(73.12) = 73// 输出最终结果cout << ans << endl; // 正确输出应为整数73return 0;
}

这个代码只通过了50%,我还没找到问题出在哪。

补充:C++数学库常用函数

  1. 绝对值函数用abs()函数实现
  2. 四舍五入操作用round()函数实现
  3. 计算平方根用sqrt()函数实现
  4. 计算幂次方用pow()函数实现

五,宝石组合

 

#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;const int N = 1e5 + 1; //定义一个常数 N,,表示数组大小的上线为100001
int s[N]; //定义整数数组s,用于存储输入的宝石的闪亮度
int n; //存储宝石的数量
vector<int> d[N]; int main() {cin >> n;
//遍历0到n-1,读取宝石的闪亮度,存储到数组s中for (int i = 0; i < n; i++) {cin >> s[i];}sort(s, s + n);//对数组s中的宝石闪亮度进行升序排序
//找出数组s中每个元素的约数,将具有相同约数的数组元素vector数组 d中for (int i = 0; i < n; i++) {for (int j = 1; j <= sqrt(s[i]); j++) {if (s[i] % j == 0) {d[j].push_back(s[i]);if (s[i] / j != j) {d[s[i] / j].push_back(s[i]);}}}}
//在存储具有相同约数的宝石闪亮度的vector数组d中,寻找第一个元素个数大于等于3的for (int i = N - 1; i >= 0; i--) {if (d[i].size() >= 3) {cout << d[i][0];for (int j = 1; j < 3; j++) {cout << " " << d[i][j];}break;}}return 0;
}

 

六,数字接龙

这道题主要用到矩阵,我还没学,这周会继续补充。 

七,爬山

八,拔河

最后两题有一点思路,但没办法完全写出来,后续会补。 


http://www.ppmy.cn/server/175077.html

相关文章

方差缩减梯度算法

方差缩减梯度算法 方差缩减梯度算法(Variance-Reduced Gradient Methods) 方差缩减梯度算法是机器学习中优化随机梯度下降(SGD)的一类重要技术,旨在减少梯度估计的方差,从而加速收敛并提高稳定性。其核心思想是通过引入校正项或周期性全梯度计算,平衡随机梯度的方差与…

NetLink内核套接字案例分析

一、基础知识 Netlink 是 Linux 系统中一种内核与用户空间通信的高效机制&#xff0c;而 Netlink 消息是这种通信的核心载体。它允许用户态程序&#xff08;如网络配置工具、监控工具&#xff09;与内核子系统&#xff08;如网络协议栈、设备驱动&#xff09;交换数据&#xff…

vue 仿deepseek前端开发一个对话界面

后端&#xff1a;调用deepseek的api&#xff0c;所以返回数据格式和deepseek相同 {"model": "DeepSeek-R1-Distill-Qwen-1.5B", "choices": [{"index": 0, "delta": {"role": "assistant", "cont…

HTML5拼图游戏开发经验分享

HTML5拼图游戏开发经验分享 这里写目录标题 HTML5拼图游戏开发经验分享前言项目架构1. 文件结构2. 核心功能模块 技术要点解析1. 响应式布局2. 图片处理3. 拖拽交互4. 动画效果 性能优化开发心得项目亮点总结源码分享写在最后 前言 在Web前端开发领域&#xff0c;通过实战项目…

带宽管理配置实验

一、实验拓扑 配置流程&#xff1a; 1、带宽通道&#xff1a;整体带宽、每个用户带宽、连接数、优先级信息 2、带宽策略 3、策略通道&#xff0c;引用 4、配置接口出入带宽 二、实验需求和配置 1、基础配置 接口配置 [dianxin]interface GigabitEthernet 0/0/0 [dianxin-G…

设计:用创意灵感勾勒界面灵魂,引领用户情感共鸣

在当今数字化飞速发展的时代&#xff0c;UI 设计已不再仅仅局限于构建美观的界面&#xff0c;它更是一门用创意灵感勾勒界面灵魂&#xff0c;从而引领用户情感共鸣的艺术。一个成功的 UI 设计能够在用户与产品之间搭建起一座无形的桥梁&#xff0c;使两者之间产生深度的情感连接…

《Python全栈开发》第8课:Python后端入门 - Flask框架基础

🌟 课程目标 掌握Flask开发环境搭建理解路由与视图函数工作原理学会处理请求与返回JSON响应完成第一个后端API开发一、Flask是什么?(餐厅服务员比喻) 1.1 前后端分工 #mermaid-svg-oHBE8WyDrAoZPoBY {font-family:"trebuchet ms",verdana,arial,sans-serif;fon…

HarmonyOS Next~HarmonyOS 应用开发利器:ArkData 深度解析

HarmonyOS 应用开发利器&#xff1a;ArkData 深度解析 ​ HarmonyOS 作为一款面向全场景的分布式操作系统&#xff0c;其应用开发工具链也在不断完善。ArkData 作为 HarmonyOS 应用开发中的重要一环&#xff0c;为开发者提供了高效、便捷的数据管理解决方案。本文将深入解析 A…