Java实现判断回文数的代码示例

0 下载量 56 浏览量 更新于2024-08-03 收藏 1KB MD 举报
"Java回文数的实现及代码解析" 在计算机编程中,回文数是一个有趣的概念,它指的是无论从左向右还是从右向左读,数字序列都保持不变。例如,数字121、12321和123321都是回文数。本篇文章将详细介绍如何在Java中判断一个整数是否为回文数,并提供相关的代码示例。 在Java中,我们可以编写一个名为`PalindromeNumber`的类,其中包含一个`isPalindrome`的方法来检查输入的整数是否为回文。以下是对该方法的详细解释: ```java public class PalindromeNumber { public static boolean isPalindrome(int num) { // 如果数字是负数,直接返回false,因为负数不可能是回文数 if (num < 0) { return false; } // 初始化反转后的数字为0 int reversed = 0; // 保存原始数字的副本,避免在循环中修改原始值 int original = num; // 当数字不等于0时,继续循环 while (num != 0) { // 取出数字的最后一位(个位数) int digit = num % 10; // 将取出的个位数添加到反转数字的左侧 reversed = reversed * 10 + digit; // 移除数字的个位数,以便下一次循环 num /= 10; } // 比较原始数字和反转后的数字,如果相等则为回文数 return original == reversed; } public static void main(String[] args) { // 测试回文数和非回文数 int num1 = 12321; int num2 = 12345; System.out.println(num1 + " is a palindrome: " + isPalindrome(num1)); System.out.println(num2 + " is a palindrome: " + isPalindrome(num2)); } } ``` 在上述代码中,`isPalindrome`方法首先检查输入的数字`num`是否为负数,如果是,则直接返回`false`。接下来,我们创建一个变量`reversed`用来存储反转后的数字,并初始化为0。同时,我们保留`original`变量来保存输入的原始数字,以便于之后的比较。 在循环中,我们用`num % 10`获取`num`的个位数,然后将其加到`reversed`的左侧(通过`reversed * 10 + digit`实现)。接着,我们将`num`除以10,移除其个位数,进入下一次循环。这个过程会一直持续到`num`变为0。 最后,我们比较`original`和`reversed`,如果两者相等,说明`num`是一个回文数,返回`true`;否则,返回`false`。 在`main`方法中,我们调用`isPalindrome`方法测试了两个数字:12321(回文数)和12345(非回文数),并打印了结果。程序的输出为: ``` 12321 is a palindrome: true 12345 is a palindrome: false ``` 这就是Java中判断回文数的基本方法。这个算法的时间复杂度为O(logN),因为它只遍历了输入数字的每一位。空间复杂度为O(1),因为我们只使用了常数级别的额外空间。