洛谷 [NOIP1999 普及组] 回文数
文章目录
目录
文章目录
题目
一、基本思路
二、相关代码
1.判断是否是回文数
2.字符串的初始化
3.反转
4.反转相加
三.总
题目
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。
例如:给定一个十进制数 5656,将 5656 加 6565(即把 5656 从右向左读),得到 121121 是一个回文数。
又如:对于十进制数 8787:
STEP1:87+78=16587+78=165
STEP2:165+561=726165+561=726
STEP3:726+627=1353726+627=1353
STEP4:1353+3531=48841353+3531=4884
在这里的一步是指进行了一次 NN 进制的加法,上例最少用了 44 步得到回文数 48844884。
写一个程序,给定一个 NN(2 \le N \le 102≤N≤10 或 N=16N=16)进制数 MM(100100 位之内),求最少经过几步可以得到回文数。如果在 3030 步以内(包含 3030 步)不可能得到回文数,则输出 Impossible!
。
提示:以下是本篇文章正文内容,下面案例可供参考
一、基本思路
1.输入M,N(进制数)
2.判断N是否是回文数
2.1如果是结束操作
2.2如果不是进行反转相加,回到步骤2重复操作
2.2.1如果反转相加次数大于30次,结束操作输出“Impossible”
2.2.2如果反转相加次数小于30次,输出 次数
二、相关代码
1.字符串的初始化
void init()
{int j=0;for(int i=s.length()-1;i>=0;i--){if(s[i]>='0'&&s[i]<='9')//判断是否是数字 {q[++j]=s[i]-'0';//将字符转换成数字 }else{q[++j]=s[i]-'A'+10;//将十六进制的字母转换为数值 }}
}
2.判断是否是回文数
bool hw(int a[])
{int q=slong;int i=1;int j=slong;while(q--){if(q<(slong/2)) break;if(a[i]!=a[j]) return false;i++;j--;}return true;
}
3.反转
void turn(int a[])
{int j=0;for(int i=slong;i>=1;i--)w[++j]=a[i];
}
4.反转后高精度相加
void add(int a[],int b[])
{for(int i=1;i<=slong;i++){a[i]+=b[i];a[i+1]+=a[i]/n;a[i]%=n;}if(a[slong+1]>0) slong++;
}
三.总结
首先输入字符串后要将字符串转化为数值;判断回文数时可以利用最后一位等于第一位循环;因为进行相加的次数很多数值范围大大超出了标准数据类型能表示的范围的运算要用高精度加法
洛谷 [NOIP1999 普及组] 回文数相关推荐
- 信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数
[题目链接] ybt 1309:[例1.6]回文数(Noip1999) 洛谷 P1015 [NOIP1999 普及组] 回文数 注:两OJ上的问题考察内容相同,但输出要求不同 [题目考点] 1.高精度 ...
- P1015 [NOIP1999 普及组] 回文数 C语言实现
最近在做洛谷的一道回文数的题目时卡住了,但由于笔者只学习了C语言,于是想找一篇C语言写的博客学习一下.但无奈的是大多为C++或Python等语言,而且注释太少,用C++写的有的博客全局变量使用的太多, ...
- 洛谷P4287 [SHOI2011]双倍回文 题解
洛谷P4287 [SHOI2011]双倍回文 题解 题目链接:P4287 [SHOI2011]双倍回文 题意: 记字符串 www 的倒置为 wRw^RwR .例如 (abcd)R=dcba(\tt{a ...
- 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome
嗯... 这道题对于蒟蒻的我来说实在是TQL... 先看一下题:(题目链接:https://www.luogu.org/problemnew/show/P1217) 然后说一下我的做题过程吧: 一看到 ...
- 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)
题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes 题解 C/C++
知识点: 回文数有两种 一种是单数位数,abcba,一种是双数位数,abccba 而双数位数是质数的只有11,即偶位回文数全不是质数除了11:所以不需要枚举到1亿,到1千万就好了 以下几种方法供参考 ...
- 洛谷 题解 P2010 【回文日期】
因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...
- 洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
我就叫大家打表吧,自己也刚学会: 由于有些题目直接提交又会超时,所以打表是一个不错的解决方法. 对于回文质数而言,判断回文,判断质数就ok了 1.存入文件 #include<bits/stdc+ ...
最新文章
- [ZJOI2012]灾难
- 1-2月我国程控交换机产量同比减少13.96%
- PHP Shell生成工具Weevely
- 【深度学习入门到精通系列】模型结构可视化神器Netron(连.pth都可以~!)
- PHP中Header函数和PHP_AUTH_USER做用户验证
- 【BZOJ】【4145】【AMPPZ2014】The Prices
- AD16画线时如何切换90°、45°、任意角度画线模式
- (二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs
- SQL Server 备份与恢复之八:还原数据库
- 机器视觉烟包行业质量检测解决方案
- Android自定义View【实战教程】1⃣️----attrs.xml详解
- Ubuntu安装显卡驱动教程
- 接口获取行政区划代码_最新行政区划代码省市区三级 乡镇街道四级 村五级 数据库(2021年1月版 )...
- 2021全国电赛H题回顾
- 基于stm32f103c8t6的Flash地址空间的数据读取
- matlab爆炸建模,7.2.5萨墓基尔加丹M螺旋爆炸技能建模分析
- 两点天上来,爱情一线牵——Global Timing Debugger
- 7-16 寻找大富翁
- java pdfbox2 中文乱码_使用PdfBox实现pdf转图片,解决中文方块乱码等问题
- MySQL的时间戳2038年问题还有16年,最好在设计上的时候使用datetime就可以了,不要使用时间戳字段了,即使用了也不要用int类型进行映射,使用long类型映射即可