1.题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
2.实现思路
首先得到一个div,当前除以它可以得到最高位的值,再对当前数字%10,可以得到最低位的值,二者进行比较。
每一轮的需要处理的数=(当前数-当前数*div)/10
3.代码实现
public class IsPalindrome {
public boolean isPalinddrome(int x){
if(x<0) return false;
int div=1;
while(x/div>=10){
div*=10;
}
while (x>0){
int left=x/div;
int right=x%10;
if(left!=right) return false;
x=(x-left*div)/10;
div=div/100;
}
return true;
}
@Test
public void test(){
boolean result=isPalinddrome(1221);
System.out.println(result);
}
}