判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/palindrome-number
这里的定义负数都不是回文数 因此可以单独考虑 并且所有小于10且大于0的数都是回文数 因此也可以对其进行单独的考虑
回文数 顺着读和反着读是一样的结果 那么我们可以考虑将这个数进行反转 如果反转后的数值和原来的数值是一样的 那么我们就认为这个数是回文数
(这里需要注意一点)我们必须用一个值去存储原来的数值 因为如果直接在原来的数值上进行操作的话 那么原来的数值就会发生改变 直接上代码
package com.lzh.simple;
import java.util.Scanner;
public class PalindromeDemo9 {
public static boolean isPalindrome(int x){
if(x<0){
return false;
}
if(x>0&&x<9){
return true;
}
int num = 0;
int sum = x;
while(sum!=0){//注意这里不能直接用x也就是原来的数进行操作 因为操作过后那么这个数就会发生变化 可以用一个相同数值的数对其进行操作
num = num*10+sum%10;
sum=sum/10;
}
if(num==x){
return true;
}else{
return false;
}
}
//测试
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
boolean b = isPalindrome(x);
System.out.println(b);
}
}