0
点赞
收藏
分享

微信扫一扫

算法实现:Java 回文数检测

题目描述:

给你一个整数 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;
    }
}

运行结果

算法实现:Java 回文数检测_java

算法实现:Java 回文数检测_java_02

举报

相关推荐

0 条评论