大于非负整数N的第一个回文数 Symmetric Number
1.题目
如标题,求大于整数N(N>=0)的第一个回文数的字符串表示形式。
2.样例
1 --> 2
9 -->11
12345 -->12421
123456 -->124421
999 -->1001
3.分析
借用:http://www.cnblogs.com/xudong-bupt/p/4015226.html
4.代码
import java.util.Scanner;
public class SymmetricNumber {
public static void main(String[] argv){
Scanner in=new Scanner(System.in);
int N=in.nextInt();
String n=String.valueOf(N);
//特殊情况:9999999999999.........
if((N+1)%10==0)
System.out.print(N+2);
//非特殊情况
else
{
if(n.length()==1){
System.out.println(N+1);
}
else{
//偶数位
if(n.length()%2==0){
String temp=n.substring(0,n.length()/2);
String temp_0=n.substring(n.length()/2,n.length());
String temp_1="";
for(int i=n.length()/2-1;i>=0;i--){
temp_1=temp_1+temp.charAt(i);
}
//大于的话则直接输出前半部分和前半部分的倒置
if(Integer.parseInt(temp_1)>Integer.parseInt(temp_0))
System.out.println(temp+temp_1);
//否则前半部分加一,然后新的temp与temp的倒置组成新的String 输出
else
{
temp=String.valueOf(Integer.parseInt(temp)+1); //加一
//本身加倒置组成新的String
for(int i=temp.length()-1;i>=0;i--){
temp=temp+temp.charAt(i);
}
System.out.println(temp);
}
}
//奇数位
else{
String temp_0=n.substring((n.length()+1)/2,n.length());
String temp=n.substring(0,(n.length()+1)/2);
String temp_1="";
for(int i=temp.length()-2;i>=0;i--){
temp_1=temp_1+temp.charAt(i);
}
if(Integer.parseInt(temp_1)>Integer.parseInt(temp_0))
System.out.println(temp+temp_1);
else
{
temp=String.valueOf(Integer.parseInt(temp)+1);
for(int i=temp.length()-2;i>=0;i--){
temp=temp+temp.charAt(i);
}
System.out.println(temp);
}
}
}
}
}
}
大于非负整数N的第一个回文数 Symmetric Number的更多相关文章
- [2014亚马逊amazon] 在线笔试题 大于非负整数N的第一个回文数 Symmetric Number
1.题目 如标题,求大于整数N(N>=0)的第一个回文数的字符串表示形式. 这个题目也是当时笔试第一次见到,花了一个小时才做出了.慢慢总结还是挺简单的. 2.分析 分析如下: (1)一位数N(9 ...
- [Swift]LeetCode9. 回文数 | Palindrome Number
Determine whether an integer is a palindrome. An integer is a palindrome when it reads the same back ...
- Leetcode 9 回文数Palindrome Number
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- [LeetCode] Prime Palindrome 质数回文数
Find the smallest prime palindrome greater than or equal to N. Recall that a number is prime if it's ...
- 判断回文字符串、回文链表、回文数(python实现)
所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构 判断回文字符串 方法一: def is_palin ...
- LeetCode(9):回文数
Easy! 题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: f ...
- LeetCode 5回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向 ...
- Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全 C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数 C# 算法题系列(一) 两数之和、无重复字符的最长子串 DateTime Tips c#发送邮件,可发送多个附件 MVC图片上传详解
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
- C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数
各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ...
随机推荐
- 初识ES6
1.ECMAScript的官网地址:http://www.ecma-international.org/cma-262/6.0/,其是JS语言的下一代标准,已经在2015年6月正式发布,目标是让JS可 ...
- shell常见操作整理(更新)
查看文件第20到30行的内容 法一:[root@oldboy ~]# seq 100 > ett.txt [root@oldboy ~]# head -30 ett.txt | tail -11 ...
- UVALive 6426
UVALive 6426 /** 题意:给一个n*m的矩阵,求某一个区间的数的数量 做法:刚开始想用树状数组,但是RE,题目中说数据是从二进制流中读入, 用scanf会挂掉 所以用fread 读入 s ...
- hadoop3.1集成yarn ha
1.角色分配
- 深度学习方法:受限玻尔兹曼机RBM(四)对比散度contrastive divergence,CD
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入 上篇讲到,如果用Gibbs Sa ...
- hdu 4240(最大流+最大流量的路)
Route Redundancy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 将Sphinx的日志放置到/dev/shm里需要注意的事情
可以采用定时器控制,清空日志的办法: 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo “ ...
- AC日记——明明的烦恼 bzoj 1005
1005 思路: prufer编码+组合数: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 #de ...
- 9. Spark Streaming技术内幕 : Receiver在Driver的精妙实现全生命周期彻底研究和思考
原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/) Spark streaming 程序需要不断接收新数据,然后进行业务逻辑 ...
- 转:攻击JavaWeb应用[7]-Server篇[1]
转:http://static.hx99.net/static/drops/tips-604.html 攻击JavaWeb应用[7]-Server篇[1] 园长 · 2013/09/22 15:39 ...