好数(蓝桥杯)
文章目录
- 好数
- 题目描述
- 暴力方法一
- 暴力方法二(超时)
好数
题目描述
【问题描述】
一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 · · · )上的数字是奇数,偶数位(十位、千位、十万位 · · · )上的数字是偶数,我们就称之为“好数”。
给定一个正整数 N,请计算从 1 到 N 一共有多少个好数。
【输入格式】
一个整数 N。
【输出格式】
一个整数代表答案。
【样例输入 1】
24
【样例输出 1】
7
【样例输入 2】
2024
【样例输出 2】
150
【样例说明】
对于第一个样例,24 以内的好数有 1、3、5、7、9、21、23,一共 7 个。
【评测用例规模与约定】
对于 10% 的评测用例,1 ≤ N ≤ 100。
对于 100% 的评测用例,1 ≤ N ≤ 107。
暴力方法一
从题目中可以得出结论:奇数位(个位、百位、万位 · · · )上的数字是奇数,偶数位(十位、千位、十万位 · · · )上的数字是偶数
那么就可以定义一个k代表数字n的当前位数,从1开始计数,即个位是1,十位是2,百位是3……
然后就可以从个位开始取数,判断该数是否为好数,每取走一位,k加上1,进入下一位
// 包含C++程序中常用的库,是C++标准库的一个集合,包括了I/O、字符串和容器等
#include<bits/stdc++.h>
// 使用std命名空间中的名字,避免每次调用标准库中的东西都要加上std::前缀
using namespace std;// 定义一个函数check,用于检查某个整数n是否是“好数”
bool check(int n)
{int k=1; // 代表数字n的当前位数,从1开始计数,即个位是1,十位是2,百位是3,以此类推// 循环检查整数n的每一位while(n){int t=n%10; // t为n的当前最低位的数字,%运算符取余数// 检查当前位数k是否与对应的数字t符合好数的定义if(k%2==1 && t%2==0) // 如果位数k是奇数但数字t是偶数,则不满足好数的定义return false; // 返回false,表示n不是好数if(k%2==0 && t%2==1) // 如果位数k是偶数但数字t是奇数,则不满足好数的定义return false; // 返回false,表示n不是好数n /= 10; // n去掉最低位的数字,/=运算符用来对n除以10并将结果赋值给nk++; // 增加位数计数器,因为已经检查了一位}// 如果所有位的检查都通过,则n是好数return true; // 返回true,表示n是好数
}// 程序的主函数
int main()
{int n; // 定义一个整型变量n用来存放输入的数字cin >> n; // 从标准输入流中读取一个整数到变量nint ans = 0; // 初始化答案变量ans,用于计数有多少个好数// 循环,从1开始到n结束for(int i=1; i<=n; i++){// 调用check函数检查i是否是好数if(check(i))ans++; // 如果i是好数,就将答案变量加1}// 输出答案cout << ans;// 返回0,标识程序正常结束return 0;
}
暴力方法二(超时)
分情况讨论:
- 当该数位数为奇数时,可以得到结论:偶数位上是奇数,奇数位上是偶数
- 当该数位数为偶数时,可以得到结论:偶数位上是偶数,奇数位上是奇数
代码如下:
// 包含C++标准库的头文件,用于I/O操作和字符串处理
#include<bits/stdc++.h>
using namespace std;int main() {int n; // 定义一个整数变量n用来存储输入的整数Ncin >> n; // 从标准输入流中读取一个整数到n中int ans = 0; // 定义并初始化计数器ans,用来记录总的好数的数量// 用一个for循环遍历从1到n的所有整数,检查每个数是否为好数for(int i = 1; i <= n; i++) {string s; // 定义一个字符串s,用来存储当前数字的字符串表示s = to_string(i); // 把当前的整数i转化为字符串格式存储在s中int flag = 0; // 定义一个标识变量flag,用来表示当前数是否为好数// 当数字的位数为奇数时,进行检查if(s.size() % 2 == 1) {// 遍历数字的每一位for(int j = 0; j < s.size(); j++) {// 如果位数是奇数位(从0开始计数),但数字是偶数,设置标志并跳出循环if(j % 2 == 0 && (s[j] - '0') % 2 == 0) {flag = 1;break;}// 如果位数是偶数位,但数字是奇数,设置标志并跳出循环if(j % 2 == 1 && (s[j] - '0') % 2 == 1) {flag = 1;break;}}}// 如果数字的位数为偶数,进行检查if(s.size() % 2 == 0) {// 同样地,遍历数字的每一位for(int j = 0; j < s.size(); j++) {// 如果位数是奇数位,但数字是偶数,设置标志并跳出循环if(j % 2 == 0 && (s[j] - '0') % 2 == 1) {flag = 1;break;}// 如果位数是偶数位,但数字是奇数,设置标志并跳出循环if(j % 2 == 1 && (s[j] - '0') % 2 == 0) {flag = 1;break;}}}// 如果flag没有被设置,说明当前的数是一个“好数”if(flag == 0)ans++; // 好数的数量加1}cout << ans; // 输出总的好数的数量return 0; // 程序结束
}
这段代码通过将数字转换成字符串的形式,然后检查字符串的每个字符来判断一个数是否符合“好数”的定义。代码中的flag变量用来表示当前检查的数是否已经确定不是“好数”。如果在检查过程中发现某位数字不符合好数的要求,flag将被设置为1,并终止进一步检查。最终,没有被标记为非好数的数将会被计入最终的答案ans中。
相关文章:
好数(蓝桥杯)
文章目录 好数题目描述暴力方法一暴力方法二(超时) 好数 题目描述 【问题描述】 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位 )上的数字是奇数,偶数位(十位、千位、十万位 …...
自动化收集Unity版本更新日志
自动化收集Unity版本更新日志 🍥功能介绍🥪食用手册填写配置开始搜集 🍨数据展示 🍥功能介绍 💡获取指定年份中所有的Unity版本更新日志。 💡根据指定字符串过滤。 💡.收集后自动保存成markdow…...
【CSS】CSS水平居中方案
CSS水平居中方案 1. 行内元素水平居中 设置父元素的text-align:center .box {width: 300px;height: 300px;margin: 100px auto;text-align: center;background-color: pink; }2. 块级元素水平居中 当块级元素设置了明确的宽度数值时,可以使用margin: 0 auto 3.…...
SQL注入sqli_labs靶场第二题
解题思路与第一题相同 ?id1 and 11 和?id1 and 12进行测试如果11页面显示正常和原页面一样,并且12页面报错或者页面部分数据显示不正常,那么可以确定此处为数字型注入。 联合查询: 猜解列名数量:3 ?id1 order by 4 判断回显…...
基于机器学习的人脸发型推荐算法研究与应用实现
1.摘要 本文主要研究内容是开发一种发型推荐系统,旨在识别用户的面部形状,并根据此形状推荐最适合的发型。首先,收集具有各种面部形状的用户照片,并标记它们的脸型,如长形、圆形、椭圆形、心形或方形。接着构建一个面部…...
【服务器部署篇】Linux下Nginx的安装和配置
作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…...
React搭建一个文章后台管理系统
1、项目准备 本篇文章讲解的是一个简单的文章后台管理系统,系统的功能很简单,如下:登录、退出;首页;内容(文章)管理:文章列表、发布文章、修改文章。 1)React官方脚手架:create-rea…...
Elasticsearch 支持的插件 —— 筑梦之路
Analysis 插件: 1、IK Analyzer:适用于中文分词的插件,提供了针对中文文本的分析器。 2、Smart Chinese Analysis:另一个中文分词插件,支持中文智能分词。 集群管理插件: 1、Kibana:Elasticsear…...
HTML:链接
目录 一、超链接 二、 外联元素 一、<a>超链接 <a> 标签用于定义超链接,超链接可以让用户从一个网页跳转到另一个网页。 常用属性: href指定链接的目标地址。download表示链接是一个下载链接,指定下载的文件名。target 指定在…...
vscode远程连接centos
文章目录 vacode连接linux1. 安装插件2. 查看配置3. 打开ssh4. 远程连接 vacode连接linux 1. 安装插件 在扩展栏搜索remote ,找到Remote Development插件,进行安装: 2. 查看配置 打开自己的linux终端,输入ifconfig,…...
scala---面向对象(类,对象,继承,抽象类,特质)
一、类(class)和 对象(object) 1、类 类就是对客观的一类事物的抽象。用一个class关键字来描述和Java一样,在这个类中可以拥有这一类事物的属性,行为等等。 2、为什么要有对象 在java中的一个class既可…...
【机器学习300问】68、随机初始化神经网络权重的好处?
一、固定的初始化神经网络权重可能带来的问题 在训练神经网络的时候,初始化权重如果全部设置为0或某个过大值/过小值。会导致一些问题: 对称权重问题:全为0的初始化权重会导致神经网络在前向传播时接收到的信号输入相同。每个神经网络节点中…...
数据结构与算法——20.B-树
这篇文章我们来讲解一下数据结构中非常重要的B-树。 目录 1.B树的相关介绍 1.1、B树的介绍 1.2、B树的特点 2.B树的节点类 3.小结 1.B树的相关介绍 1.1、B树的介绍 在介绍B树之前,我们回顾一下我们学的树。 首先是二叉树,这个不用多说ÿ…...
Tomcat源码解析——Tomcat的启动流程
一、启动脚本 当我们在服务启动Tomcat时,都是通过执行startup.sh脚本启动。 在Tomcat的启动脚本startup.sh中,最终会去执行catalina.sh脚本,传递的参数是start。 在catalina.sh脚本中,前面是环境判断和初始化参数,最终…...
蓝桥杯真题演练:2023B组c/c++
日期统计 小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的范围之内。 数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 …...
微信小程序实现预约生成二维码
业务需求:点击预约按钮即可生成二维码凭码入校参观~ 一.创建页面 如下是博主自己写的wxml: <swiper indicator-dots indicator-color"white" indicator-active-color"blue" autoplay interval"2000" circular > &…...
专业140+总分410+北京理工大学826信号处理导论考研经验北理工电子信息通信工程,真题,参考书,大纲。
今年考研专业课826信号处理导论(信号系统和数字信号处理)140,总分410,顺利上岸!回看去年将近一年的复习,还是记忆犹新,有不少经历想和大家分享,有得有失,希望可以对大家复…...
做一个后台项目的架构
后台架构的11个维度 架构1:团队协助基础工具链的选型和培训架构2:搭建微服务开发基础设施架构3:选择合适的RPC框架架构4:选择和搭建高可用的注册中心架构5:选择和搭建高可用的配置中心架构6:选择和搭建高性…...
嵌入式单片机 TTL电平、232电平、485电平的区别和联系
一、简介 TTL、232和485是常见的串口通信标准,它们在电平和通信方式上有所不同, ①一般情况下TTL电平应用于单片机外设,属于MCU/CPU等片外外设; ②232/485电平应用于产品整体对外的接口,一般是片外TTL串口转232/485…...
2024年大唐杯备考
努力更新中…… 第一章 网络架构和组网部署 1.1 5G的网络整体架构 5G网络中的中传、回传、前传(这里属于承载网的概念) CU和DU之间是中传 BBU和5GC之间是回传 BBU和AAU之间是前传(这个好记) 这里竟然还藏了MEC(…...
告别DWA!用TEB局部规划器让你的ROS机器人学会‘倒车入库’(附多机编队避障实测对比)
告别DWA!用TEB局部规划器解锁机器人高阶机动能力 在机器人自主导航领域,传统动态窗口方法(DWA)长期占据主导地位,直到开发者们遇到那些需要倒车、急转弯或狭窄空间多机协作的真实场景。想象一下仓储机器人需要在货架间完成"倒车入库&quo…...
gemma-3-12b-it实际作品:10张不同领域测试图的图文理解准确率统计表
gemma-3-12b-it实际作品:10张不同领域测试图的图文理解准确率统计表 1. 测试背景与方法 最近我在实际使用gemma-3-12b-it模型时,对其图文理解能力产生了浓厚兴趣。这个由Google推出的多模态模型号称能够同时处理文本和图像输入,并生成准确的…...
H3C无线调优案例
用户报无线经常掉线,用户现场无线用的H3C 首先登录无线控制器搜集对应接入体验差的AP的诊断日志,从日志中可以看到AP有线上行口的组播广播包数量远远超过了单播报文;没有CRC错误报文,说明网线质量没有问题。接着看:我们…...
开源键盘固件终极配置指南:轻松自定义你的机械键盘
开源键盘固件终极配置指南:轻松自定义你的机械键盘 【免费下载链接】vial-qmk QMK fork with Vial-specific features. 项目地址: https://gitcode.com/gh_mirrors/vi/vial-qmk 想要完全掌控你的机械键盘,打造独一无二的输入体验吗?Vi…...
HUNYUAN-MT模型安全加固:防止API滥用与恶意攻击
HUNYUAN-MT模型安全加固:防止API滥用与恶意攻击 最近在帮一个朋友的公司部署他们自研的HUNYUAN-MT翻译模型API,准备对外开放给合作伙伴使用。本来以为就是搭个服务、配个密钥的事儿,结果聊下来才发现,他们最担心的不是模型翻译得…...
QQ音乐下载的歌曲怎么导出来?分享我的FFMpeg自动化处理脚本(附Win/Mac命令)
用FFMpeg实现QQ音乐文件自动化处理:跨平台脚本全解析 每次从QQ音乐下载的歌曲文件总是带着各种限制——加密格式只能在特定播放器打开,专辑封面无法显示,批量处理更是让人头疼。作为一个整理过上千首音乐文件的资深用户,我摸索出…...
HunyuanVideo-Foley效果展示:AI生成的量子计算实验室环境音效(科技感)
HunyuanVideo-Foley效果展示:AI生成的量子计算实验室环境音效(科技感) 1. 核心能力概览 HunyuanVideo-Foley是一款专为视频与音效生成设计的AI模型,其私有部署镜像经过RTX 4090D 24GB显卡的深度优化。这个镜像最令人惊艳的能力之…...
RWKV7-1.5B-g1a实操手册:基于CSDN GPU平台的完整调用流程
RWKV7-1.5B-g1a实操手册:基于CSDN GPU平台的完整调用流程 1. 模型简介 rwkv7-1.5B-g1a 是基于新一代 RWKV-7 架构的多语言文本生成模型,特别适合中文场景下的轻量级应用。这个1.5B参数的版本在保持较高生成质量的同时,对硬件要求非常友好&am…...
Java Web 新冠物资管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
摘要 新冠疫情的爆发对全球公共卫生体系提出了严峻挑战,物资管理成为疫情防控中的关键环节。传统物资管理方式依赖人工操作,效率低下且易出错,难以应对突发公共卫生事件中的大规模物资调配需求。为解决这一问题,新冠物资管理系统应…...
手指划过屏幕放大模型界面,环氧树脂层和纤维基体在激光路径下呈现出清晰的物理场分布。突然发现这个双层材料烧蚀模型跑得格外顺畅——看来前几天通宵调参没白费
comsol激光清洗、烧蚀双层材料 表面一层50μm厚度的环氧树脂(可更换成其他材料),基体材料为纤维材料。 添加功率为13W的激光进行清洗或烧蚀 模型非常成功、角度选择很奈斯在COMSOL里建模时有个小细节特别关键:把环氧树脂层的厚度参数设为全局变量。别小看…...
