【蓝桥杯选拔赛真题48】C++九进制回文数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解析

目录

C++九进制回文数

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析

七、推荐资料


C++九进制回文数

第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题

一、题目要求

1、编程实现

提示信息:

  • 回文数: 反向排列与原来一样的数就叫做回文数
  • 例如,12321 是回文数,1231不是回文数。
  • 九进制数:指逢9进位的一种进位计数制,以0、1、2、3、4、5、6、7、8共九个数码表示。例如:十进制数 9等于九进制数 10,十进制数81 等于九进制数 100,以此类推

给定两个正整数N和M(1≤N≤M≤5000),请计算出N到M之间(含N和M)总共有多少个数满足以下条件:1、转换为九进制之后为回文数
2、转换为九进制后每个数位上的数字都是奇数

例如:
当N=90,M=120。90到 120之间(含90和120) 总共有2 个数满定条件,为91 和109。91 转换为九进制为 111,是一个回文数,且每个数位上的数字都是奇数,109 转换为九进制为 131,是一个回文数,且每个数位上的数字都是奇数;故输出2。

2、输入输出

输入描述:输入两个正整数N 和 M(1<N<M<5000),两个正整数之间用一个空格隔开

输出描述:输出一个整数,表示 N到M之间(含 N和 M)总共有多少个满足条件的正整数

输入样例:

90  120

输出样例:

2

二、算法分析

  1. 从给定题目的初步分析可以看出,题目要求的是九进制回文数
  2. 所以需要将N到M中的每个数字转换为九进制
  3. 接着判断九进制数的每一位是否符合奇数回文数的要求
  4. 符合就将个数增加,最后输出符合要求的总数即可

三、程序编写

#include<iostream>
using namespace std;
int a[10];
int get_Nine(int k)
{
	int l = 0,t;
	while(k)
	{
		t = k % 9;
		if(t % 2 == 0)
			return 0;
		a[l] = t;
		k /= 9;
		l++;
	}
	for(int i=0,j=l-1;i<j;i++,j--)
	{
		if(a[i] != a[j])
			return 0;
	}
	return 1;
}
int main()
{
	int n,m,res = 0;
	cin >> n >> m;
	for(int i=n;i<=m;i++)
		res += get_Nine(i);
	cout << res << endl;
	return 0;
}

四、程序说明

  1. 首先需要导入输入输出流头文件
  2. 然后是引入std命名空间中的所有成员到当前的程序中,这样在当前的程序中就可以直接使用 std 命名空间中的所有成员,而不需要使用的时候在成员前面加上(std::)前缀
  3. 定义了一个大小为10的整型数组a,用于存储转换后的九进制数的每一位
  4. 定义一个get_Nine函数用于判断一个十进制数转换为九进制后是否为回文数,参数k为要判断的十进制数
  5. 函数内部进行以下操作: 初始化变量l为0,用于记录转换后的九进制数的位数
  6. 使用while循环,将十进制数k转换为九进制数,循环条件为k不为0
  7. 在循环内部,使用变量t保存k除以9的余数,即九进制数的当前位数
  8. 如果t为偶数,则返回0,表示不是回文数
  9. 否则,将t保存到数组a中并将l加1
  10. 将k除以9,更新k的值
  11. 使用for循环,检查数组a是否为回文数
  12. 循环条件为i小于j,同时i从0开始递增,j从l-1开始递减。如果a[i]和a[j]不相等,则返回0,表示不是回文数
  13.  如果以上所有条件都满足,则返回1,表示是回文数
  14. 在主函数main中,定义了变量n和m,分别表示范围的起始和结束值
  15. 然后使用for循环,依次遍历范围内的每个十进制数
  16. 对于每个十进制数,调用get_Nine函数判断是否为九进制的回文数,然后累加到变量res上
  17. 循环结束后,输出变量res的值,即范围内九进制回文数的个数
  18. 最后返回0,程序结束

 本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

五、运行结果

90  120

2

六、考点分析

难度级别:中等,这题相对而言有一定的难度,在于九进制转换及每一位数的获取,具体主要考查如下:

  1. 充分掌握变量的定义和使用
  2. 学会输入流对象cin的使用,从键盘读入相应的数据
  3. 学会for循环的使用,在确定循环次数的时候推荐使用学会
  4. 学会while循环的使用,在不确定循环次数的时候推荐使用
  5. 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
  6. 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
  7. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  8. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  9. 充分掌握变量定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

七、推荐资料

  • 所有考级比赛学习相关资料合集【推荐收藏】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity DOTS中的baking(四)blob assets

Unity DOTS中的baking&#xff08;四&#xff09;blob assets blob assets表示不可变的二进制数据&#xff0c;在运行时也不会发生更改。由于blob assets是只读的&#xff0c;这意味着可以安全地并行访问它们。此外&#xff0c;blob assets仅限于使用非托管类型&#xff0c;这意…

网络爬虫基本知识

什么是网络爬虫 网络爬虫&#xff08;Web crawler&#xff09;是一种自动化程序&#xff0c;用于在互联网上收集信息。它可以通过扫描和解析网页的超链接&#xff0c;自动访问网页并抓取所需的数据。网络爬虫常用于搜索引擎和数据采集工具中。 作用 通过有效的爬虫手段批量采…

C语言中位运算介绍

在C语言中&#xff0c;位运算是一种对二进制位进行操作的运算方式&#xff0c;它可以对数据的二进制表示进行位级别的操作&#xff0c;包括按位与、按位或、按位异或、按位取反等。位运算常用于处理底层数据结构、优化代码性能以及实现各种算法。本文将深入介绍C语言中的位运算…

如何使用Python结合Pillow、matplotlib和OpenCV实现图片读取

使用Pillow库 matplotlib是一个绘图库&#xff0c;经常用于数据可视化&#xff0c;但它也可以用来展示图片。 from PIL import Image# 读取图片 image Image.open(.jpg)# 展示图片 image.show()使用OpenCV库 OpenCV是一个强大的计算机视觉和机器学习库。它不仅提供了大量的图像…

masterGo 的设计网站介绍

https://mastergo.com/files/home 这个网站是一个设计图片的网站 ui设计方面的网站 有很多优秀的资源 比如App设计 可以直接用的图片 和设计模板 也可以像ps 一样 设计自己的图片或者ui图 适合前端和ui开发者使用 可以丰富自己的审美观

Kubernetes示例yaml:1. service-deployment.yaml

service-deployment.yaml 示例 apiVersion: apps/v1 kind: Deployment metadata:name: example-plusnamespace: aaaalabels:app: example-prdapp_unit: AAAA-EXAMPLE spec:replicas: 2selector:matchLabels:app: example-prdtemplate:metadata:labels:app: example-prdapp_uni…

gin语言基础学习--会话控制(下)

练习 模拟实现权限验证中间件 有2个路由&#xff0c;/cookie和/home/cookie用于设置cookiehome是访问查看信息的请求在请求home之前&#xff0c;先跑中间件代码&#xff0c;检验是否存在cookie 访问home&#xff0c;会显示错误&#xff0c;因为权限校验未通过 package mainim…

【CXL协议-ARB/MUX层(5)】

5.0 Compute Express Link ARB/MUX 前言&#xff1a; 在CXL协议中&#xff0c;ARB/MUX层&#xff08;Arbitration/Multiplexer layer&#xff09;是负责管理资源共享和数据通路选择的一层。CXL协议包含了几个子协议&#xff0c;主要有CXL.io、CXL.cache 和 CXL.memory。ARB/MU…

2024年福建事业单位招聘详细流程

2024年福建事业单位招聘详细流程&#xff0c;速速查收&#xff01;

Windows安装tomcat,以服务的方式管理,如何设置虚拟内存

之前工作中&#xff0c;部署tomcat都是使用Linux服务器&#xff0c;最近遇到个客户&#xff0c;提供的服务器是Windows server&#xff0c;并且需要通过服务的方式管理tomcat&#xff1b;以自己多年的码农经验&#xff0c;感觉应该没有问题&#xff0c;结果啪啪打脸了&#xf…

【实现100个unity特效之7】unity 3d实现各种粒子效果

文章目录 先看最终效果下雨效果萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合其他特效爆炸、闪电、火焰、雷雨特效&#xff08;2023/7/5更新&#xff09;源码完结 先看最终效果 下…

使用Nginx1.25.4版本做负载均衡、搭建Nacos2.3.0服务集群

关于使用版本问题上&#xff0c;其实小白更喜欢使用新的版本&#xff0c;因为新的版本功能更多&#xff0c;肯定优化方面不言而喻&#xff0c;懂得都懂&#xff0c;但是新的版本&#xff0c;肯定使用起来更加的速度&#xff0c;性能&#xff0c;也是不言而喻的啊&#xff0c;那…

【学海拾贝】| 关于Python的 PEP 484规则了解:类型提示,函数注解

在实际的工厂在实际的工程代码的开发中&#xff0c;常常可以碰到这种情况 上网查了之后发现这是PEP484规则~ 文章目录 1 Type Hints for Variables&#xff08;变量在这里插入图片描述2 Function Annotations&#xff08;函数注解&#xff09;3 Type Checking Tools&#xff08…

window下迁移SVN仓库到新的windows服务器

一、背景 一个基于 Windows 的 SVN 服务器&#xff0c;用于管理团队的代码库。该 SVN 仓库托管着公司的软件项目&#xff0c;包括多个分支和版本的代码。我们的团队规模约为 50 人&#xff0c;分布在不同的地理位置&#xff0c;他们都依赖 SVN 仓库来进行代码版本控制和协作开…

ETL工具-nifi干货系列 第四讲 Avro schema 序列化框架

一、在使用nifi的过程中会使用到遇到avro schema、avro data、avroReader、avroWriter等&#xff0c;所以本节课和大家一起学习下avro相关知识。 二、什么是Avro Apache Avro是hadoop中的一个子项目&#xff0c;也是一个数据序列化系统&#xff0c;其数据最终以二进制格式&…

ZnO非线性电阻片的老化机理生产厂家

金属氧化物限压器通常不带串联间隙,因此工作电压将长期作用在限压器内的电阻片上&#xff0c;长期有泄漏电流流过。对于工频电压,电流中包括一定分量的阻性电流。虽然阻性电流幅值相对于容性电流要小,但有可能随时间逐渐增加,并导致功率损耗的增加&#xff0c;即ZnO非线性电阻存…

Django 仿博客园练习

数据库搭建 部分功能介绍 【一】注册 &#xff08;1&#xff09;效果显示、简单简介 主要亮点 结合了layui和forms组件默认头像可以随着性别的选择发生改变自定义头像可以实时更新显示forms组件报错信息可以局部刷新显示在对应框体下面 没有直接使用layui的前端验证后端验证…

Flutter(踩坑)之Android sdkmanager tool not found

D:\Flutter\flutter\bin\flutter.bat doctor --verbose [√] Flutter (Channel stable, v1.2.1, on Microsoft Windows [Version 10.0.22631.3296], locale zh-CN)• Flutter version 1.2.1 at D:\Flutter\flutter• Framework revision 8661d8aecd (5 years ago), 2019-02-14 …

1.0 html(1)

html 一、基本介绍 1、定义&#xff1a;html是一种超文本标记语言&#xff0c;也是一种标识性语言&#xff08;不是编程语言&#xff09; 标记&#xff1a;记号&#xff08;绰号&#xff09; 超文本&#xff1a;就是页面内容可以包含图片、链接&#xff0c;音乐&#xff0c…

OC 技术 苹果内购

一直觉得自己写的不是技术&#xff0c;而是情怀&#xff0c;一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的&#xff0c;希望我的这条路能让你们少走弯路&#xff0c;希望我能帮你们抹去知识的蒙尘&#xff0c;希望我能帮你们理清知识的脉络&#xff0…