代码如下:
import java.util.LinkedList;
import java.util.Queue;
public class Test {
/**
* 输入一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
* @param args
*/
public static boolean isPalindromeNumberNor(int num) {
if(num < 10)
return false;
String str = String.valueOf(num);
if(str.length() % 2 == 1) {
// 回文数为奇数
for (int i = str.length() - 1; i >= 0; --i) {
if(i == str.length() - 1 - i)
return true;
if(str.charAt(i) != str.charAt(str.length() - i - 1)) {
return false;
}
}
} else {
for (int i = str.length() - 1; i >= 0; --i) {
if(str.charAt(i) != str.charAt(str.length() - i - 1)) {
return false;
}
}
return true;
}
return false;
}
// 使用队列实现
static Queue<Integer> queue = new LinkedList<>();
public static boolean isPalindromeNumber(int num) {
if(num == 0)
return false;
queue.add(num % 10);
isPalindromeNumber(num / 10);
if(num % 10 == queue.poll())
return true;
else
return false;
}
public static void main(String[] args) {
System.out.println(isPalindromeNumber(1234321));
System.out.println(isPalindromeNumberNor(1234321));
}
}
运行结果: