题目描述

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

例如:给定一个十进制数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 \le N \le 10,N=16)进制数M(100位之内),求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出Impossible!

输入格式

两行,分别是N,M。

输出格式

STEP=ans

输入输出样例

输入 #1复制

10
87

输出 #1复制

STEP=4

这个题我刚开始觉得它的sum可能会很大,然后就用的大数,结果发现,用String 字符串就可以了,你说神奇不神奇,然后再进行编码的时候要注意以下几点:

1.先求某个数的逆数(我是这样称呼的);

2.将这两个数全部转化为10进制,然后相加;

3.将和转化为相应的进制进行判断;

这样的结果是正确的;

import java.math.BigInteger;
import java.util.Scanner;public class  Main {static Scanner sc=new Scanner(System.in);static int N,S;  static String M;static char[] ch= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};static String reverse(String m2) {String m1="";String str=m2+"";for(int i=str.length()-1;i>=0;i--) {m1+=str.charAt(i);}return m1;}static String add(String m2) {// TODO Auto-generated method stubString m1=reverse(m2);long sum1=0;long sum2=0;long sum=0;for(int i=0;i<m2.length();i++) {sum1=sum1*N+(m2.charAt(i)>64?m2.charAt(i)-55:Long.parseLong(m2.charAt(i)+""));}for(int i=0;i<m1.length();i++) {sum2=sum2*N+(m1.charAt(i)>64?m1.charAt(i)-55:Long.parseLong(m1.charAt(i)+""));}sum=sum1+sum2;String str="";while(sum>0) {long dig=sum%N;str+=ch[(int) dig];sum/=N;}return reverse(str);}public static void main(String[] args) {// TODO Auto-generated method stubN=sc.nextInt();S=N;M=sc.next();int ans=0;while(!isH(M)) {if(ans>30) {System.out.println("Impossible!");return;}M=add(M);ans++;}if(ans==0) {ans=1;}System.out.println("STEP="+ans);}static boolean isH(String m2) {// TODO Auto-generated method stubString str=m2+"";boolean flag=true;for(int i=0;i<((str.length()-1)/2+1);i++) {if(!(str.charAt(i)==str.charAt(str.length()-1-i))) {flag=false;}}return flag;}}

[洛谷 OJ]P1015 回文数相关推荐

  1. 洛谷P1015回文数

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

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

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

  3. xtu oj 1376 回文数

    回文数 题目描述 回文数是指一个没有前导0的数,从左到右的数码和从右到左的数码是一样的.比如说10进制下的"121",这就是一个回文数. 我们将这个概念扩展到b进制,n=∑ki=0 ...

  4. zzuli OJ 1106: 回文数(函数专题)

    Description 一个正整数,如果从左向 右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.输入两个整数m和n(m<n),输出区间[m,n]之间的回文数. In ...

  5. 洛谷-P4287 双倍回文(Manacher)

    双倍回文 Manacher算法用的还是不够熟悉啊,被卡了好久...一会再写个回文自动机的做法吧 清晰的回文自动机写法 题意:若一个回文串左半部分和有半部分分别为一个回文串,则这个回文串被称为双倍回文串 ...

  6. 洛谷oj P1045麦森数 高精度快速幂取模及位数求法

    题目链接:戳我戳我 我们知道,  的最后一位必定不是0, 则  的位数与  相等. 那么如何来求  的位数呢? 为了不失一般性, 在此直接讨论任意数  的位数: 对于任意大于等于0的实数k, 有  的 ...

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

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

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

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

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

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

最新文章

  1. Unity创建使用操纵杆飞行动画教程
  2. Buuctf(pwn) jarvisoj_tell_me_something 栈溢出
  3. Python中使用httpx模块详解
  4. 复旦大学吴立德《数值优化》、《深度学习》和
  5. 基于事件驱动架构构建微服务第11部分:持续集成
  6. 你了解的继承方式html,法定继承、遗嘱继承、遗赠,这三种房产过户方式你了解多少?...
  7. wordpress主题是php开发的吗,写给想学习wordpress主题开发的朋友们
  8. 微博多尺度序列推荐算法实践
  9. 文件那些事儿之一(初稿)
  10. 前端框架Vue(3)——vue-cli 目录结构
  11. z11 max android 6.0,努比亚Z11Max 安卓6.0 魅族Flyme6刷机包 最新6.7.12.29R紫火版 20180108更新...
  12. 搜狗站长平台没有sitemap的接口无法提交sitemap?该怎么提交?【已解决】
  13. 洛谷P1488 肥猫的游戏
  14. Nebula Graph性能测试工具——Nebula Bench实践
  15. 体系结构第1章—基本概念
  16. 点云平滑之双边滤波适用性分析
  17. Jhipster 中的 Liquibase 正确使用方法
  18. AV-TEST杀毒软件能力测试(2018年1月-12月)杀毒软件排名
  19. django实现商品分类展示
  20. CCIE和HCIE工程师工资一般多少?

热门文章

  1. 【Test】[20111011][数论+记忆化搜索+枚举(Heap优化)+SPFA]
  2. pytoch人工神经网络基础:最简单的分类(softmax回归+交叉熵分类)
  3. 【企业工程实践】云服务牛刀小试_DayFour
  4. 开源的在线培训/在线考试/在线网校/企业内训系统介绍
  5. openwrt--uci指令的使用
  6. OPPOK7x和oppoa92s哪个好?
  7. windows10操作系统家庭版,解决启用或关闭windows功能中没有Hyper-v
  8. 精彩网页设计示例收藏
  9. 德语语音教学课件下载
  10. 今天给大家分享使用Scratch做一个猫捉老鼠的游戏!