题目描述:
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
- 回文数:是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121
是回文数,而123
不是。
题目分析
我们做这道题很容易可以想到:
- 我们新建一个变量,这个变量里存放着一个颠倒的
x
- 然后用这个数去与我们原本的
x
相比较,如果依然相等,那么这个数则为回文数。
那么我们怎么将一个数颠倒呢?
我们可以把x的个位数当做最高位,十位数当作次高位,以此不断倒着存放入一个新变量中。
如:x = 1234
- 第 1 次循环结束:新变量的值为4,x为123
- 第 2 次循环结束:新变量的值为43,x为12
- 第 3 次循环结束 :新变量的值为432,x为1
- 第 4 次循环结束 :新变量的值为4321,x为0
代码示例
import java.util.Scanner;
public class IsPalindromeText {
public static void main(String[] args) {
int x = 0;
boolean flag = false;
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
x = sc.nextInt();
Solution solu = new Solution();
flag = solu.IsPalindrome(x);
if(flag) {
System.out.println(x + "是回文数");
} else {
System.out.println(x + "不是回文数");
}
sc.close();
}
}
class Solution {
public boolean IsPalindrome(int x) {
//所有负数不是回文数
if (x < 0){
return false;
}
int tem = 0;//保存x的颠倒值
int sameX = x;//保存x的原始值
while(x > 0) {
tem = tem * 10 + x % 10;
x /= 10;
}
//等于 -> 返回true
//否则 -> 返回false
return tem == sameX;
}
}