题目描述:
给你一个整数 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;
    }
}运行结果












