【蓝桥杯冲刺】—— 2021 软件类 B 组 C/C++ 真题 A~B

简介: 【蓝桥杯冲刺】—— 2021 软件类 B 组 C/C++ 真题 A~B

文章目录

本来计划好的各种复习方案,却因为种种原因没有执行,不找借口,就是不想学

阶段性心理活动状态:

  • 看了看真题,哇!好难,还是先做基础题吧……
  • 查了一堆资料、找了各种资源,满满收藏,一个没看……
  • 搜集经验贴,错把经验当宝剑……
  • 想着时间还很长,一再推迟,今日事,明日毕!结果到火烧眉毛也没看……

直到今天下载了准考证,才知道事情的严重性!!!但,好歹努个力吧,至少不能轻言放弃

想想 300 块大洋的报名费,用来干什么不香,不能打水漂。突击训练搞起来,肝算法,刷题~冲冲冲,恶补 +1 +1

试题 A:空间

解题思路

计算机基础知识,主要考察不同数据存储单位之间的转换

题解

需要知道如下单位转换关系

1 mb = 1024 kb = 1024 * 1024 b ; 1 byte(字节) = 8 bit(位)

那么,256 mb 的内存共有 256 * 1024 * 1024 * 8 bit,所以,共能存放 (256 * 1024 * 1024 * 8)÷ 32 = 67108864 个 32 位二进制整数

计算的话可以用计算器,或者代码。当然,你也可以选择手工计算,但我觉得你应该不至于这么做

/*
 * @Author: coder-jason
 * @Date: 2022-04-04 19:29:06
 * @LastEditTime: 2022-04-04 19:31:17
 */
#include <iostream>
using namespace std;
int main()
{
    // cout << (256 * 1024 * 1024 * 8) / 32 << endl; 运算结果超出 int 范围
    cout << 256 * 1024 * 1024 / 4 << endl;
    return 0;
}

试题 B:卡片

解题思路

首先,数字 0~9,每个数字又有 2021 个,显然需要存放于数组中,每次拼凑数字用掉一张卡片,对应卡片数量减一。等到某个数字卡片数量中出现剩余 0 张的情况,则无法继续拼凑

事实上,题目举例显而易见,拼出数字 1~9 时,只剩下 1 张卡片 1 ,无法继续拼出数字 11 。实际情况中,数字 1 也是使用最多的,也就是用的最快,最先没有剩余的

其中,在数组判断哪个数字减一时涉及到数位截取的知识点

名字高深,实质很简单:用 /% 提取出组合数据中的数字,eg:截取数字 206 中的 6,206 % 10 即可

题解

/*
 * @Author: coder-jason
 * @Date: 2022-04-04 19:32:45
 * @LastEditTime: 2022-04-04 20:39:46
 */
#include <iostream>
using namespace std;
int array[10]; //数字 0~9 共 10 个数字
bool piece(int num)
{ // 尝试拼出数字 num,成功返回 true,失败返回 false
    while (num)
    {
        array[num % 10]--;       // 使用了数字num,使用 % 剥离数字,数字对应个数减一
        if (array[num % 10] < 0) // 如果对应的数字剩余个数小于 0,说明该数字已经用尽,返回 false
            return false;
        num /= 10; // 数字 1 和 10,均使用数字 1,故 / 10后商为 1,数字 1 的个数需要再次减一
    }
    return true;
}
int main()
{
    int count = 0; //计数器,每次拼完一个数字,自增 1
    for (int i = 0; i < 10; i++)
    {
        array[i] = 2021; // 数组中每个元素都赋值为 2021,代表数字 0~9的个数
    }
    for (int i = 1;; i++)
    {
        if (piece(i))
        { // 从数字1开始拼,每拼完一个数字,计数器自增 1
            count++;
        }
        else
            break;
    }
    cout << count << endl;
    return 0;
}



相关文章
|
9月前
|
存储 缓存 监控
用 C++ 红黑树给公司电脑监控软件的日志快速排序的方法
本文介绍基于C++红黑树算法实现公司监控电脑软件的日志高效管理,利用其自平衡特性提升日志排序、检索与动态更新效率,并结合实际场景提出优化方向,增强系统性能与稳定性。
242 4
|
存储 机器学习/深度学习 算法
基于 C++ 的局域网访问控制列表(ACL)实现及局域网限制上网软件算法研究
本文探讨局域网限制上网软件中访问控制列表(ACL)的应用,分析其通过规则匹配管理网络资源访问的核心机制。基于C++实现ACL算法原型,展示其灵活性与安全性。文中强调ACL在企业与教育场景下的重要作用,并提出性能优化及结合机器学习等未来研究方向。
313 4
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
人工智能 算法 BI
第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
第十四届蓝桥杯省赛大学C组(C/C++)三国游戏
|
负载均衡 算法 安全
探秘:基于 C++ 的局域网电脑控制软件自适应指令分发算法
在现代企业信息化架构中,局域网电脑控制软件如同“指挥官”,通过自适应指令分发算法动态调整指令发送节奏与数据量,确保不同性能的终端设备高效运行。基于C++语言,利用套接字实现稳定连接和线程同步管理,结合实时状态反馈,优化指令分发策略,提升整体管控效率,保障网络稳定,助力数字化办公。
312 19
|
算法 安全 C++
用 C++ 算法控制员工上网的软件,关键逻辑是啥?来深度解读下
在企业信息化管理中,控制员工上网的软件成为保障网络秩序与提升办公效率的关键工具。该软件基于C++语言,融合红黑树、令牌桶和滑动窗口等算法,实现网址精准过滤、流量均衡分配及异常连接监测。通过高效的数据结构与算法设计,确保企业网络资源优化配置与安全防护升级,同时尊重员工权益,助力企业数字化发展。
336 4
|
机器学习/深度学习 算法 关系型数据库
第十五届蓝桥杯C++B组省赛
第十五届蓝桥杯C++B组省赛
586 14
|
算法 C++
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
2022年第十三届蓝桥杯大赛C/C++语言B组省赛题解
503 5
|
人工智能 算法 Java
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1005 数字游戏
305 0
|
Java C语言 C++
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-1000 kAc给糖果你吃
260 0