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

news2025/4/21 20:49:23

一,握手问题

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

答案: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;  // 使用临时变量,避免修改外层循环的 n
        bool 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和浮点数d
    cin >> 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; // 正确输出应为整数73
    
    return 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.coloradmin.cn/o/2314635.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】——数据类型和变量

个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录&#xff1a; 1.Java中的注释1.1.基本规则1.2.注释规范 2.标识符3.关键字4.字面常量5.数据类型6.变量6.1变量的概念6.2语法6.3整型变量6.3.1整型变量6.3.2长整…

SpringMVC 基本概念与代码示例

1. SpringMVC 简介 SpringMVC 是 Spring 框架中的一个 Web 层框架&#xff0c;基于 MVC&#xff08;Model-View-Controller&#xff09; 设计模式&#xff0c;提供了清晰的分层结构&#xff0c;适用于 Web 应用开发 SpringMVC 主要组件 DispatcherServlet&#xff08;前端控…

MKS HA-MFV:半导体制造中的高精度流量验证技术解析

引言 在半导体先进制程&#xff08;如3nm节点&#xff09;中&#xff0c;工艺气体流量的精准控制直接决定刻蚀、沉积等关键步骤的均匀性和良率。MKS Instruments推出的 HA-MFV&#xff08;High Accuracy Mass Flow Verifier&#xff09; 通过创新设计解决了传统流量验证技术的…

基于Python实现手写数字识别

KNN实验——手写数字识别 实验目的&#xff1a; 实验内容&#xff1a; 实现最基本的KNN算法&#xff0c;使用trainingDigits文件夹下的数据&#xff0c;对testDigits中的数据进行预测。&#xff08;K赋值为1&#xff0c;使用欧氏距离&#xff0c;多数投票决定分类结果&#…

shell的模拟实现 ─── linux第16课

目录 第一版只能维护命令行参数表创建子进程, 执行非内建命令 第一版的执行结果: 第二版能维护命令行参数表执行cd命令 ,判断了是否是自建命令(mysell自己执行自建命令,可以对环境变量发生改变),子进程执行其他命令. 第二版执行结果: 第三版 模拟真实shell从系统文件中获取环…

游戏引擎学习第153天

仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾 目前正在进行的是一个比较大的系统调整&#xff0c;原本预计今天会继续深入这个改动&#xff0c;但实际上在昨天的开发中&#xff0c;我们已经完成了大部分的代码编写&#xff0c;并且运行之后几乎一切都能正常工作&#x…

Java EE 进阶:SpringBoot 配置⽂件

什么是配置文件 “配置文件”是一个用来保护程序或者系统设置信息的文件&#xff0c;它的作用是让程序在启动或者运行中&#xff0c;能够读取这些设置并按预期进行工作&#xff0c;而不需要手动的设置。 Spring Boot 配置文件 设置服务器端口、编码格式配置数据库连接控制日…

【redis】五种数据类型和编码方式

文章目录 五种数据类型编码方式stringhashlistsetzset查询内部编码 五种数据类型 字符串&#xff1a;Java 中的 String哈希&#xff1a;Java 中的 HashMap列表&#xff1a;Java 中的 List集合&#xff1a;Java 中的 Set有序集合&#xff1a;除了存 member 之外&#xff0c;还有…

色板在数据可视化中的创新应用

色板在数据可视化中的创新应用&#xff1a;基于色彩感知理论的优化实践 引言 在数据可视化领域&#xff0c;色彩编码系统的设计已成为决定信息传递效能的核心要素。根据《Nature》期刊2024年发布的视觉认知研究&#xff0c;人类大脑对色彩的识别速度比形状快40%&#xff0c;色…

【无人机路径规划】基于麻雀搜索算法(SSA)的无人机路径规划(Matlab)

效果一览 代码获取私信博主基于麻雀搜索算法&#xff08;SSA&#xff09;的无人机路径规划&#xff08;Matlab&#xff09; 一、算法背景与核心思想 麻雀搜索算法&#xff08;Sparrow Search Algorithm, SSA&#xff09;是一种受麻雀群体觅食行为启发的元启发式算法&#xff0…

STM32_GPIO系统外设学习

按照STM32MCUWIKI、参考手册的外设介绍----->CubeF4的软件包中相关的Exmple代码----->CubeMX设置截图加深理解记忆 资料链接&#xff1a;嵌入式开发_硬软件的环境搭建 我的飞书文档-GPIO篇 如果觉得内容不错&#xff0c;欢迎给我的飞书文档点赞。同时如果有什么意见或…

【操作系统安全】任务1:操作系统部署

目录 一、VMware Workstation Pro 17 部署 二、VMware Workstation 联网方式 三、VMware 虚拟机安装流程 四、操作系统介绍 五、Kali 操作系统安装 六、Windows 系统安装 七、Windows 系统网络配置 八、Linux 网络配置 CSDN 原创主页&#xff1a;不羁https://blog.csd…

下载安装启动 VMware 个人免费版本

一、进入官网并登录账号下载软件 进入官网 [ https://www.vmware.com ]&#xff0c;点击Products&#xff0c;将页面划到最底下&#xff0c;点击 “SEE DESKTOP HYPERVISORS”按钮。 然后点击 Desktop hypevisor &#xff0c;会出现如下界面&#xff0c;可以根据自己的操作系…

C#+AForge 实现视频录制

C#AForge 实现视频录制 ​ 在C#中&#xff0c;使用AForge 库实现视频录制功能是一个比较直接的过程。AForge 是一个开源的.NET框架&#xff0c;提供了许多用于处理图像和视频的类库。 开发步骤 安装AForge库 ​ 首先&#xff0c;确保你的项目中已经安装了 AForge.Video和AFo…

SAP SD学习笔记31 - 销售BOM

上一篇讲 前受金处理(预付款处理)。 SAP SD学习笔记29 - 前受金处理(预收款处理)_fplt 付款申请与sd 数据表的关联关系-CSDN博客 本章继续讲SAP SD模块的其他知识&#xff1a;销售BOM。 销售BOM在现场还是会用到的。 目录 1&#xff0c;销售BOM概要 2&#xff0c;受注BOM的…

大数据学习(63)- Zookeeper详解

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91e; &#x1f…

嵌入式八股C语言---面向对象篇

面向对象与面向过程 面向过程 就是把整个业务逻辑分成多个步骤,每步或每一个功能都可以使用一个函数来实现面向对象 对象是类的实例化,此时一个类就内部有属性和相应的方法 封装 在C语言里实现封装就是实现一个结构体,里面包括的成员变量和函数指针,然后在构造函数中,为结构体…

C# ListView设置标题头背景颜色和字体颜色

一、向ListView 添加数据 for (int i 1; i < 5; i) {ListViewItem litem new ListViewItem("data:"i);lv_WarnList.Items.Add(litem); }如果需要在ListView中绑定实体类对象的话&#xff0c;需要将数据放在Tag属性里 for (int i 1; i < 5; i) {AngleData …

嵌入式 ARM Linux 系统构成(6):应用层(Application Layer)

目录 一、应用层概述 二、应用层的核心组成 2.1 主应用程序&#xff08;Main Applications&#xff09; 2.2 系统服务&#xff08;System Services&#xff09; 2.3 用户界面&#xff08;User Interface&#xff09; 2.4 脚本与自动化工具 2.5 第三方库与框架 2.6 通信…

【HTML】一、基础标签

文章目录 1、开发环境准备2、html介绍3、html基本骨架4、标签的关系5、常用标签5.1 标题5.2 段落5.3 换行与水平线5.4 文本格式化标签5.5 图像标签5.6 超链接标签5.7 音频标签5.8 视频标签 6、路径7、网页制作 1、开发环境准备 在编辑器中写代码&#xff0c;在浏览器中看效果 …