当前位置: 首页 > news >正文

第十五届蓝桥杯c++B组:好数

蓝桥杯真题:好数

暴力解法

#include<bits/stdc++.h> // 万能头文件,包含了 C++ 常用的所有标准库 using namespace std; int n; // 定义一个全局变量 n,用于存储用户输入的最大数值范围 int ans = 0; // 定义答案计数器 ans,初始化为 0,用于统计满足条件的数字个数 // 定义一个函数 check,用于检查传入的数字 x 是否满足某种特殊规则 bool check(int x) { int tem = x; // 将 x 赋值给临时变量 tem,因为我们要修改 tem 来逐位处理 int f = 0; // 定义一个标志位 f,用来表示当前处理的是奇数位还是偶数位 // 题目注释里写了:0 表示奇数位(从个位开始算第 1 位是奇数位),1 表示偶数位 // 开始循环,逐位处理数字,直到 tem 变成 0(即所有位都处理完) while(tem) { // 判断当前是奇数位还是偶数位 if(f == 0) // 如果是奇数位(个位、百位、万位……) { // 检查当前最低位的数字(tem % 10)是否是偶数 // tem % 10 得到最低位数字,再 % 2 判断奇偶性 if(tem % 10 % 2 == 0) // 如果最低位是偶数 { return false; // 违反规则:奇数位应为奇数,但现在它是偶数,直接返回 false } } else // 如果是偶数位(十位、千位、十万位……) { // 检查当前最低位的数字是否是奇数 if(tem % 10 % 2 != 0) // 如果最低位是奇数 { return false; // 违反规则:偶数位应为偶数,但现在它是奇数,返回 false } } tem /= 10; // 去掉当前处理过的最低位,准备处理下一位(原数字的更高位) // 切换标志位:当前是奇数位,下一次循环就是偶数位;反之亦然 if(f == 0) f = 1; // 奇数位变偶数位 else f = 0; // 偶数位变奇数位 } // 如果整个 while 循环都执行完没有返回 false,说明这个数符合规则,返回 true return true; } int main() { cin >> n;// 从标准输入读取一个整数 n,表示我们要检查 1 到 n 之间的所有数字 // 遍历从 1 到 n 的所有整数 for(int i = 1; i <= n; ++i) { // 调用 check 函数检查当前数字 i 是否满足条件 if(check(i)) { ans++; // 如果满足条件,计数器加 1 } } cout << ans; // 输出最终统计出来的满足条件的数字个数 return 0; }

<bits/stdc++.h>本质上是一个头文件集合,它又去包含了 C++ 标准库中所有的头文件(vector,iostream,algorithm,map,set,cmath...等等)。

  • 哪怕你只需要cout,编译器也要去解析成千上万行代码。

  • 对于大型项目,这会导致编译时间显著增加。

  • 使用<iostream>则只包含输入输出流,编译速度快得多。

为什么竞赛喜欢用,而工程喜欢用iostream

场景为什么用bits/stdc++.h为什么用iostream
算法竞赛省事、快(写代码快)。选手不用记一大堆头文件,反正 OJ 的 GCC 环境都支持,编译慢几十毫秒无所谓。需要一个个敲#include <vector>#include <algorithm>,浪费时间。
实际工程/教学不推荐。代码可能需要跨平台编译(Windows/Linux/macOS),或者编译大型项目时,编译时间很重要,且代码规范要求高。标准、规范、可移植。编译快,依赖清晰,符合 C++ 标准。

所以,那个“万能头”只是在特定环境(GCC + 竞赛/刷题)下的偷懒神器,到了真正的工程开发领域,还是老老实实用标准头文件比较好。

http://www.jsqmd.com/news/484684/

相关文章:

  • 鸡眼扣自动摆盘实战指南:半自动化整列机为何成为行业首选?
  • 网络层IP理解
  • 基于MPC模型预测控制的“风储调频”系统:仿真与实际频率特性的对比研究
  • java--多线程--线程安全
  • 在openSUSE-Leap-15.6-DVD-x86_64中使用gnome-builder-45.0的基本功能(二)空白Makefile工程
  • AI在线客服系统源码独立管理后台,自动回复文本、图片、视频等多种消息类型
  • 【负载均衡oj项目】03. compile_server编译运行服务设计
  • 大模型学习宝典:零基础入门到项目实战的完整攻略
  • CNN - BiLSTM实现多变量/时间序列预测:Matlab轻松上手
  • 打卡信奥刷题(2956)用C++实现信奥题 P5923 [IOI 2004] empodia 障碍段
  • 基于PID控制的步进电机控制系统仿真:Matlab Simulink的奇妙之旅
  • 打卡信奥刷题(2957)用C++实现信奥题 P5924 [IOI 2004] Phidias 菲迪亚斯神
  • 三维钢板上SH0模态的超声检测建模手记
  • “HALCON error #2404: Invalid handle type in operator do_ocr_multi_class_cnn
  • 基于RSSI加权质心定位算法:将RSSI值转换为距离并优化精确度的新方法
  • 抽象类接口内部类
  • 用大模型和RAG打造智能客服系统,小白也能轻松上手
  • 转载 Java内部类详解
  • 416. 分割等和子集-day39
  • RAG技术解析:让大模型从“闭卷考试“到“开卷考试“的进化
  • 小白的C语言之路(4)——指针运算与动态内存分配
  • Thinkphp和Laravel框架微信小程序的小区废品收购管理系统-
  • Thinkphp和Laravel框架微信小程序的手机银行储蓄业务系统的设计与实现
  • 先甩个最核心的计数器代码镇楼
  • 收藏!小白程序员快速入门:用Agent Skills让大模型能力可复用、可管理
  • 电导增量法INC仿真模型,作为目前实际光伏发电系统中最常用的mppt算法,可以用于学习研究
  • 【跟韩工学Hadoop系列第4篇】004篇-Hadoop 集群搭建-001篇
  • DEF CON CTF Annelid Challenge 深度解析
  • 2026本地口碑佳老火锅品牌排行,看看有你爱吗,重庆火锅/火锅/美食/川渝火锅/火锅店/老火锅,老火锅品牌排行榜单 - 品牌推荐师
  • 零基础搞定 PVE SPICE:远程更流畅 + 文件共享