第十五届蓝桥杯 2024 C/C++组 好数

题目:

题目描述:

题目链接:

好数

思路:

第一种思路详解:

因为每次检查数都是从个位开始,所以对于每一个数都是先检查奇数位再检查偶数位,即存在先检查奇数位再检查偶数位的循环。注意一次完整的循环是先检查奇数位再检查偶数位,所以在检查完奇数位后删去这一位可能temp就已经为0了,此时就应该马上退出,否则接着判断偶数位但是0也是偶数就会出错。所以在判断奇数位后删去这一位要对temp补上判断才能继续检查偶数位

这是我第一次做这题的思路,现在想想确实有点绕,但是我当时就是这么做出来的

第二种思路详解:

第二种思路会比第一种更好理解

先计算输入的数是几位数,用cnt来记录这个数的位数。然后j从第一位开始遍历第cnt位,用j可以判断当前是奇数位还是偶数位,然后对应判断奇数位是否是奇数,判断偶数位是否是偶数即可

代码:

第一种思路代码详解:

#include<bits/stdc++.h>    //万能头 
using namespace std;int main()
{int n;    //题目给的是10^7,一开始打算开long long,后面百度搜int的范围是-2^31~2^31-1 cin>>n;   //int的范围大约相当于10^9,所以不开long long也可以 int i;int count=0;for(i=1;i<=n;i++){int flag=1;  //flag=1表示好数,flag=0表示不是好数 int temp=i;//定义临时变量,因为temp会变化,若用i则while结束后i=0与循环的i=1矛盾,没结果 while(temp!=0)   //因为都是从个位开始检查,存在先检查奇数位再检查偶数位的循环 {if(temp%2==1)  //先检查奇数位,若是奇数才继续检查 {temp/=10;  //末尾删去一位 if(temp!=0&&temp%2==1) //末尾删去一位后还存在偶数位且偶数位为奇数,判断不是好数 {flag=0;break;}else  //末尾删去一位后不存在偶数位,比如1,3,5或偶数位为偶数则继续 {temp/=10; //每判断完一位就要末尾删去一位,一开始忘了这句,debug发现11不行 continue; //回到while的判断语句,像1,3,5这样的就退出while循环 }}else           //奇数位不是奇数就直接判断不是好数并break退出while循环 {flag=0;break;}}if(flag==1){count++;}}cout<<count<<endl;return 0;
}

第二种思路代码详解:

#include<bits/stdc++.h> //思路与第一次做的时候不太一样,第一次是先检查奇数位(个位开始)再检查偶数位 
using namespace std;//而检查奇数位时要检查是否有下一位及下一位是否是奇数,循环结束是看temp是否到0 //而这次二刷是先算每个数的位数,然后从第一位开始遍历 
int main()
{int n;int ans=0;cin>>n;for(int i=1;i<=n;i++){int cnt=0;  //定义cnt为数的位数 int temp1=i;while(temp1!=0){temp1/=10;cnt++;}int flag=1;  //flag为1表示是好数,为0表示不是好数 int temp2=i;for(int j=1;j<=cnt;j++) //从第一位开始遍历 {if(j%2==1) //判断是奇数位 {if(temp2%2==1){temp2/=10;continue;}else{flag=0;break;}}if(j%2==0) //判断是偶数位 {if(temp2%2==0){temp2/=10;continue;}else{flag=0;break;}}}if(flag==1){ans++;}}cout<<ans<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/76950.shtml

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

相关文章

展锐Android13状态栏默认显示电池电量百分比

展锐Android13电池状态默认不显示电池电量百分比&#xff0c;打开 /frameworks/base/packages/SettingsProvider/res/values/defaults.xml 在xml的文件最后&#xff0c;增加一项配置def_show_battery_percent&#xff1a; <?xml version"1.0" encoding"u…

OpenCV 高斯模糊 cv2.GaussianBlur

OpenCV 高斯模糊 cv2.GaussianBlur flyfish cv2.GaussianBlur 是 OpenCV 库中用于对图像进行高斯模糊处理的函数。 高斯模糊的含义 高斯模糊是一种常见的图像滤波技术&#xff0c;它可以对图像进行平滑处理&#xff0c;减少图像中的噪声和细节&#xff0c;使得图像看起来更…

[密码学基础]密码学发展简史:从古典艺术到量子安全的演进

密码学发展简史&#xff1a;从古典艺术到量子安全的演进 密码学作为信息安全的基石&#xff0c;其发展贯穿人类文明史&#xff0c;从最初的文字游戏到量子时代的数学博弈&#xff0c;每一次变革都深刻影响着政治、军事、科技乃至日常生活。本文将以技术演进为主线&#xff0c;…

PostgreSQL认证培训推荐机构

首先来看一张2025年4月份db-engines上的数据库排行情况&#xff0c;前三名是雷打不动的Oracle、MySQL、Microsoft SQL Server&#xff0c;排名第四的就是我们今天的主角 - PostgreSQL数据库&#xff0c;从这张图上可以看出&#xff0c;PostgreSQL数据库的上升超非常明显&#x…

STM32 CubeMx下载及安装(一)

CubeMx及Java下载安装&#xff08;一&#xff09; 1 背景1.1 基本介绍1.2 主要特点1.3 相关准备 2 软件下载2.1 Java 官网下载2.2 CubeMx官网下载2.4 CubeMX网盘下载 3 软件安装3.1 Java 软件安装3.1.1 安装过程 3.2 CubeMx软件安装 总结 1 背景 1.1 基本介绍 STM32CubeMX&am…

Spring Boot 应用优雅关闭

写这篇文章是因为看到 “线程池在使用结束后应该正确关闭.” 那么如果我们的 Spring 应用都无法正确关闭, 那么线程池肯定也无从保障 1. 优雅关闭 kill with pid, without -9 大多数情况下无须在意这个问题, 正确使用 kill 命令关闭就行 (注意不能使用 kill -9) kill $(cat …

linux与c语言基础知识(未全部完成)

文章很多处理论&#xff0c;没办法写出来&#xff0c;&#xff08;linux的一些理论问题&#xff0c;我有时间后&#xff0c;会逐个解决&#xff09; 文章大多数的理论来字这个链接&#xff0c; C语言快速入门-C语言基础知识-CSDN博客 一. linux&#xff08;Ubuntu&#xff09; …

面试经历(一)雪花算法

uid生成方面 1&#xff1a;为什么用雪花算法 分布式ID的唯一性需要保证&#xff0c;同时需要做到 1&#xff1a;单调递增 2&#xff1a;确保安全&#xff0c;一个是要能体现出递增的单号&#xff0c;二一个不能轻易的被恶意爬出订单数量 3&#xff1a;含有时间戳 4&#…

基于GA遗传优化TCN-BiGRU注意力机制网络模型的时间序列预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2024b&#xff08;提供软件版本下载&#xff09; 3.部分核心程序 &#xff08;完整版代码包…

深度强化学习 pdf 董豪| 马尔科夫性质,马尔科夫过程,马尔科夫奖励过程,马尔科夫决策过程

深度强化学习 pdf 百度云 hea4 pdf 主页 概念 马尔可夫奖励过程和价值函数估计的结合产生了在绝大多数强化学习方法中应用的核心结果——贝尔曼 &#xff08;Bellman&#xff09;方程。最优价值函数和最优策略可以通过求解贝尔曼方程得到&#xff0c;还将介绍三种贝尔曼 方…

验证Kubernetes的服务发现机制

验证Kubernetes的服务发现机制 文章目录 验证Kubernetes的服务发现机制[toc]一、验证基于环境变量的服务发现机制 服务发现是让客户端能够以固定的方式获取到后端Pod访问地址的机制。下面验证环境变量和DNS这两种机制。 一、验证基于环境变量的服务发现机制 对于需要访问服务…

FPGA系列之DDS信号发生器设计(DE2-115开发板)

一、IP核 IP(Intellectual Property)原指知识产权、著作权等&#xff0c;在IC设计领域通常被理解为实现某种功能的设计。IP模块则是完成某种比较复杂算法或功能&#xff08;如FIR滤波器、FFT、SDRAM控制器、PCIe接口、CPU核等&#xff09;并且参数可修改的电路模块&#xff0c…

Java单例模式详解:实现线程安全的全局访问点

精心整理了最新的面试资料和简历模板&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、什么是单例模式&#xff1f; 单例模式&#xff08;Singleton Pattern&#xff09;是一种创建型设计模式&#xff0c;它保证一个类仅有一个实例&#xff…

JVM 生产环境问题定位与解决实战(七):实战篇——OSSClient泄漏引发的FullGC风暴

本文已收录于《JVM生产环境问题定位与解决实战》专栏&#xff0c;完整系列见文末目录 引言 在前六篇博客中&#xff0c;我们系统性地学习了 JVM 生产环境问题定位与解决的全套工具链&#xff0c;涵盖jps、jmap、jstat、jstack、jcmd 等基础工具的使用技巧&#xff0c;深入剖析…

Spark集群搭建-spark-local

&#xff08;一&#xff09;安装Spark 安装Spark的过程就是下载和解压的过程。接下来的操作&#xff0c;我们把它上传到集群中的节点&#xff0c;并解压运行。 1.启动虚拟机 2.通过finalshell连接虚拟机&#xff0c;并上传安装文件到 /opt/software下 3.解压spark安装文件到/op…

Java 异常 SSLException: fatal alert: protocol_version 全解析与解决方案

在 Java 网络通信中&#xff0c;SSLException: fatal alert: protocol_version 是典型的 TLS/SSL 协议版本不兼容异常。本文结合 Java 官方规范、TLS 协议标准及实战经验&#xff0c;提供体系化解决方案&#xff0c;帮助开发者快速定位并解决协议版本冲突问题。 一、异常本质&…

虚拟列表技术深度解析:原理、实现与性能优化实战

虚拟列表技术深度解析&#xff1a;原理、实现与性能优化实战 引言 在当今数据驱动的互联网应用中&#xff0c;长列表渲染已成为前端开发的核心挑战。传统的一次性全量渲染方式在数据量超过千条时&#xff0c;往往导致页面卡顿、内存飙升等问题。虚拟列表&#xff08;Virtual L…

2025-04-20 李沐深度学习4 —— 自动求导

文章目录 1 导数拓展1.1 标量导数1.2 梯度&#xff1a;向量的导数1.3 扩展到矩阵1.4 链式法则 2 自动求导2.1 计算图2.2 正向模式2.3 反向模式 3 实战&#xff1a;自动求导3.1 简单示例3.2 非标量的反向传播3.3 分离计算3.4 Python 控制流 硬件配置&#xff1a; Windows 11Inte…

Redis的使用总结

Redis 核心使用场景 缓存加速 高频访问数据缓存&#xff08;如商品信息、用户信息&#xff09; 缓解数据库压力&#xff0c;提升响应速度 会话存储 分布式系统共享 Session&#xff08;替代 Tomcat Session&#xff09; 支持 TTL 自动过期 排行榜/计数器 实时排序&#x…

富文本编辑器实现

&#x1f3a8; 富文本编辑器实现原理全解析 &#x1f4dd; 基本实现路径图 #mermaid-svg-MO1B8a6kAOmD8B6Y {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-MO1B8a6kAOmD8B6Y .error-icon{fill:#552222;}#mermaid-s…