public class PalindromeInt {
/**
* PalindromeInt,like 1,121,12321....
* you should consider the possibility that the reversed number might overflow
* eg. 1...................9,after reversing,9 comes to first,and...you know that.
*
*/
public static void main(String[] args) {
int[] a={12321,17770};
PalindromeInt pi=new PalindromeInt();
boolean re=pi.isPalindromeInt2(a[0]);
System.out.println(re);
re=pi.isPalindromeInt2(a[1]);
System.out.println(re);
}
//generic solution
public boolean isPalindromeInt(int x){
if(x<0)return false;
int x2=x;
int y=0;
while(x>0){
y*=10;
y+=x%10;
x/=10;
}
return x2==y;
}
//better solution
//avoid overflow
public boolean isPalindromeInt2(int x){
if(x<0)return false;
boolean re=true;
int div=1;
while(x/div>=10){
div*=10;
}
while(x>0){
int h=x/div;//head
int t=x%10;//tail
if(h!=t){
re=false;
break;
}
x=(x%div)/10;//now x is 232 instead of 12321
div/=100;//accordingly,div should be 100 instead of 10000
}
return re;
}
/* c/c++? I don't know how it works
* invoke like that: isPalindrome(x, x)
boolean isPalindrome(int x,int &y){
if (x < 0) return false;
if (x == 0) return true;
if (isPalindrome(x/10, y) && (x%10 == y%10)) {
y /= 10;
return true;
} else {
return false;
}
}
*/
}
分享到:
相关推荐
算法-判断字符串是否为回文(信息学奥赛一本通-T1146)(包含源程序).rar
java作业 用java实现判断回文程序免费下载
编写一个Java应用程序。用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。回文数是指将该数含有的数字逆序排列后得到的数和原数相同,如12121和3223都是回文数
算法-求一亿以内的回文质数(素数).rar
java代码-判断内容是否为回文
使用方法输入一个数,判断是否为回文数列!
用递归实现回文判断,有GUI界面。算法简洁明了。请多指教
js代码-判断一个整数是否是回文数。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 ...
使用java编写的小程序,能够判断是几位数,并输出。以及判断是否是回文数,希望能够帮助大家。
输入一个5位整数,判断该数是否是一个回文。例如12521是一个回文,将其按相反的顺序排列,仍然是12521
Palindrome-of-numbers:整数回文
可以判断回文串。可以忽略大小写和逗号句号等问题。并且以框体的形式显示
java 如何判断回文数字 java 如何判断回文数字
本程序可以判断字符串是否回文,在程序运行时输入所要判断的字符串,按回车后将输出是或不是回文。
【问题描述】输入一个整数,判断其是否为回文数!回文数是不论从左向右顺读,还是从右向左倒读,结果都是一样的,例如151,15351. 【输入形式】从键盘输入一个整数 【输出形式】判断其是否回文数 【样例输入】 151 ...
C语言源代码 判断字符串是否是回文。。。
//第一个循环,输入数组a for (i = 0; i ; i++) { a[i] = char.Parse(Console.ReadLine()); //Console.WriteLine(a[i]); } //第二个循环,输出数组a for (i = 0; i ; i++) Console.Write(a[i] + " "); //...
数据结构实验部分经典例题,经典的简单再现
5--[神奇的回文数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码5--[神奇的回文数].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码5--[神奇的回文数].zip源码scratch2.0 3.0编程项目源文件源码...