题目描述

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:给定一个十进制数56,将56加65(即把5656从右向左读),得到121是一个回文数。

又如:对于十进制数8787:

STEP1:87+78 = 165
STEP2:165+561 = 726
STEP3:726+627 = 1353
STEP4:1353+3531 = 4884

在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。

写一个程序,给定一个N(2≤N≤10,N=16)进制数MM(100位之内),求最少经过几步可以得到回文数。如果在3030步以内(包含30步)不可能得到回文数,则输出Impossible!

输入格式:

两行,分别是N,M。

输出格式:

STEP=ans

输入样例#1:

10
87

输出样例#1:

STEP=4

题解:回文串判断,肯定要用到字符串,这里用字符串输入,倒叙转化为整型数组,判断是否为回文串,如果不是,就让俩个相反的字符串相加,k++
代码如下:

#include<bits/stdc++.h>
#define maxn 100000
#define IFN 0x3f3f3f3f
using namespace std;
typedef long long ll;
int n,a[maxn+5],b[maxn+5];
int k;
bool jude()  //判断是否为回文串
{for(int i=1;i<=a[0];i++){if(a[i]!=a[a[0]-i+1])return false;}return true;
}
void jiaf()  //字符串加法
{for(int i=1;i<=a[0];i++){b[a[0]-i+1]=a[i];}for(int i=1;i<=a[0];i++){a[i]+=b[i];if(a[i]>=n){a[i]=a[i]%n;a[i+1]++;}}if(a[a[0]+1])a[0]++;
}
int main()
{string s;k=0;cin>>n>>s;  //输入memset(a,0,sizeof(a));memset(b,0,sizeof(b));a[0]=s.size();  for(int i=1;i<=a[0];i++){//倒叙转化为整型,if(s[a[0]-i]>='A')a[i]=s[a[0]-i]-'A'+10;  //判断是否为16进制的else a[i]=s[a[0]-i]-'0';}while(!jude()&&k<=30){  //判断是否为回文串,如果不是,继续执行加法jiaf();k++;}if(k<=30){printf("STEP=%d\n",k);}else printf("Impossible!\n");return 0;
}

洛谷P1015回文数相关推荐

  1. [洛谷 OJ]P1015 回文数

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数56,将56加65(即把5656从右向左读),得到121是一个回文数. 又如:对于十进制数 ...

  2. 10.10做题——USACO1.2/洛谷1207回文平方数(Dual Palindromes)

    first thing:我市杨家巷发生一起爆炸事故,死亡17人,愿逝者安息! second thing:明天NOIP初赛,RP++,排名–;分数++; third thing:好像USACO评测系统真 ...

  3. 洛谷P1217 回文质数

    题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000 ...

  4. 洛谷 - P1217 - 回文质数 - 枚举

    https://www.luogu.org/problemnew/show/P1217 考虑暴力生成所有的回文数然后再判断是不是质数.注意个位的选择实际上只有4种.所以是 $4*10^3*10^3=4 ...

  5. 高精度练习- P1015 回文数

    题目描述 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数. 例如:给定一个十进制数5656,将5656加6565(即把5656从右向左读),得到121121是一个回文数. ...

  6. N进制正反累加判回文数(洛谷P1015题题解,Java语言描述)

    题目要求 P1015题目链接 分析 开始的时候写了这么一个代码,应该是比较基础的,是十进制的. private static void low() {Scanner scanner = new Sca ...

  7. 信息学奥赛一本通 1309:【例1.6】回文数(Noip1999) | 洛谷 P1015 [NOIP1999 普及组] 回文数

    [题目链接] ybt 1309:[例1.6]回文数(Noip1999) 洛谷 P1015 [NOIP1999 普及组] 回文数 注:两OJ上的问题考察内容相同,但输出要求不同 [题目考点] 1.高精度 ...

  8. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes

    P1207 [USACO1.2]双重回文数 Dual Palindromes 题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一 ...

  9. 洛谷 P1207 [USACO1.2]双重回文数 Dual Palindromes

    题目描述 如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做"回文数".例如,12321就是一个回文数,而77778就不是.当然,回文数的首和尾都应是非零的,因此0220就 ...

最新文章

  1. 功能强大的 C++ redis 客户端库增加至 acl 项目中
  2. 2015年3月-前端开发月刊
  3. InfoComm China 2019,揭秘“NVIDIA风格”数据科学!
  4. python自动化测试常见面试题二_思考|自动化测试面试题第二波
  5. C++ 引用本质就是一个指针常量
  6. 大数据_Flink_流式处理_简介_Flink是什么---Flink工作笔记0001
  7. 自带flash的浏览器_受够了手机自带浏览器?来看看这些超实用的不常用浏览器...
  8. eclipse反编译class文件
  9. 分享插件 Web前端助手、Restlet Client、Adblock-Plus
  10. 八大数据分析模型之——用户模型(一)
  11. 程序员必备的 10 大国外技术网站
  12. 电子相册如何用c语言制作,电子相册怎样制作?
  13. ie 无法打开服务器网页,无法打开internet站点怎么办
  14. hadoop reducer不执行问题及解决
  15. python mac 启动台 图标 跳跃_详解macOS的Mac电脑上使用“启动台”(Launchpad)
  16. mysql 1033_mysql1033错误 InnoDB临时表空间报错
  17. 摄像头8mm可以看多远_摄像头焦距怎么选
  18. Java关键字synchronized 使用中的 Double-Checked Locking is Broken
  19. python协程和网易云歌单
  20. 【zephyr】apds9660 接近(Proximity)传感器 驱动模型实现方式(一)

热门文章

  1. 记载abp中Dbcontext的疑问
  2. python中的namespace
  3. linux android开发环境搭建
  4. Linux-shell获取天气
  5. php 弹出指定窗口大小,弹出div或者弹出新窗口的固定位置、固定大小
  6. ubuntu安装jdk6
  7. django框架之模板系统
  8. Could not load file or assembly (Exception from HRESULT: 0x80131047)-解决办法
  9. .NET回归 HTML----超文本标记语言(暂时无图)
  10. Java Socket 编程