1309:【例1.6】回文数(Noip1999)
时间限制: 1000 ms         内存限制: 65536 KB
【题目描述】
若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87,
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)进制数 M.求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible” 。
【输入】
给定一个N(2<N<=10或N=16)进制数M。
【输出】
最少几步。如果在30步以内(包含30步)不可能得到回文数,则输出“Impossible”。
【输入样例】
9 87
【输出样例】
6
【来源】
No

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
int a[101],b[101],n,ans,i;
void init(int a[]){//读取字符串并逆序转换为数组 string s;cin>>n>>s;memset(a,0,sizeof(a));a[0]=s.length();for(i=1;i<=a[0];i++)if(s[a[0]-i]>='0'&&s[a[0]-i]<='9')  a[i]=s[a[0]-i]-'0';else a[i]=s[a[0]-i]-'A'+10;
}
bool check(int a[]){//判断是否回文数 for(i=1;i<=a[0];i++)if(a[i]!=a[a[0]-i+1]) return false;return true;
}
void jia(int a[]){//加法运算函数 int i,k;for(i=1;i<=a[0];i++) b[i]=a[a[0]-i+1];//逆序存储 for(i=1;i<=a[0];i++) a[i]+=b[i];//按位求和 for(i=1;i<=a[0];i++){//进位处理 a[i+1]+=+a[i]/n;a[i]%=n;}if(a[a[0]+1]>0) a[0]++;//修正长度
}
int main()
{init(a);if(check(a)){cout<<0<<endl;return 0;}ans=0;while(ans<=30){ans++;jia(a);if(check(a)){cout<<ans<<endl;return 0;}}cout<<"Impossible";return 0;} 

1309:【例1.6】回文数(Noip1999)相关推荐

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

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

  2. 信息学奥赛一本通:1309:【例1.6】回文数(Noip1999)

    1309:[例1.6]回文数(Noip1999) 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 18537     通过数: 7673 [题目描述] 若一个数(首 ...

  3. 信息学奥赛一本通|1309:【例1.6】回文数(Noip1999)

    1309:[例1.6]回文数(Noip1999) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 16625 通过数: 6788 [题目描述] 若一个数(首位不为零)从左向右读与从 ...

  4. 1309 【例1.6】回文数(Noip1999)

    #include <cstdio> #include <cstring> #include <iostream> using namespace std; int ...

  5. C语言经典例30-判断回文数

    目录 1 题目 2 分析 3 实现 4 运行结果 1 题目 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 2 分析 本题的思路是把这个数分解重新组成一个数,分 ...

  6. python回文数编程_GitHub - Fantasy2Me/PythonExercise: Python 编程练习题 100 例(源码),实例在 Python 3.6 环境下测试通过。...

    Python3 练习题 100例 有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的 ...

  7. P1015 [NOIP1999 普及组] 回文数 C语言实现

    最近在做洛谷的一道回文数的题目时卡住了,但由于笔者只学习了C语言,于是想找一篇C语言写的博客学习一下.但无奈的是大多为C++或Python等语言,而且注释太少,用C++写的有的博客全局变量使用的太多, ...

  8. 洛谷 [NOIP1999 普及组] 回文数

    文章目录 目录 文章目录 题目 一.基本思路 二.相关代码 1.判断是否是回文数 2.字符串的初始化 3.反转 4.反转相加 三.总 题目 若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将 ...

  9. 【NOIP1999】【Luogu1015】回文数(高精度,模拟)

    problem 给定一个n进制的数m 每次进行如下操作:反转(比如把56变成65)后两数相加,得新数. 求最少经过几步可以得到新数为回文数,超过30步输出Impossible! solution 判断 ...

最新文章

  1. Linux下新增的代码放哪儿,linux – 如何在QEMU源代码中添加新设备?
  2. 11、1.4.3 测试JDK安装成功
  3. 阿里帝国到底有多庞大
  4. Android 常见错误
  5. template might not exist or might not be accessible by any of the configured
  6. 企业即时通讯最可见的价值是效率和成本
  7. Tensorflow 学习笔记 vs code 的用户配置
  8. 快速失败(fail-fast)和安全失败(fail-safe)的区别是什么?
  9. ldd3笔记_3_编译模块【ZT】
  10. WCF的优势和性能测试
  11. 明天(20171017)继续学习阅读的文章
  12. 软件质量保证与测试(秦航第二版)第一章软件质量和测试的背景
  13. oracle登录卡,【Oracle连接问题】关于windows xp3上oracle连接登录卡住的问题
  14. CorelDRAW暗角效果怎么做?
  15. 金蝶BOS 插件数据填充
  16. Depsolving loop limit reached
  17. java计算机毕业设计喜枫日料店自助点餐系统源码+系统+数据库+lw文档+mybatis+运行部署
  18. Chrome浏览器内置翻译功能突然失效(自动翻译失败)解决方案
  19. 2021年中国光谱分析仪器市场趋势报告、技术动态创新及2027年市场预测
  20. Java 生成6位纯数字验证码 发短信验证码处使用

热门文章

  1. 成都五月花计算机专业学校单招,成都五月花高级技工学校这所单招学校如何
  2. 服务注册与发现(中)
  3. Linux上安装git
  4. python做一个考试系统_python考试系统 相关实例(示例源码)下载 - 好例子网
  5. 当高铁遇到地面沉降 如何测量 怎么应对(转载)
  6. ubuntu 编译 找不到 -ly
  7. [转帖]AMOLED的技术和OLED有哪些联系和区别
  8. linux+4t分区+扩容lvm,Linux中利用LVM实现分区动态扩容
  9. Nextcloud集成Active Directory(AD)LDAP用户身份验证
  10. Java继承与多态(抽象类和接口练习)定义抽象类Bank,它包含oneyearRate(一年定期利率)oneyearNationalbebt(一年国债利率)和CurrentDepositRate(按年