先求出整數的反向倒置數,然後進行比較(不是通過將數字轉換成字符串的方法)
代碼:
package com.im;
import java.util.Scanner;
public class Demo63 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.print("Enter a number (0, 100000000):");
int number = input.nextInt();
if(number>0 && number<100000000){
System.out.println(isPalindrome(number));
}else{
System.out.println("輸入超出範圍!");
System.exit(0);
}
}
public static boolean isPalindrome(int number){
if(number == reverse(number)){
return true;
}else{
return false;
}
}
public static int reverse(int number){ //輸入數的反向倒置數
int v = 0; //整數的各位字上的數字
int m = 0; //整數的反向倒置數
int count = 0;
count = digitOfNumber(number);
for(int i=1; i<=count; i++){
v = number%10;
m += v*Math.pow(10, count-i);
number /= 10;
}
return m;
}
public static int digitOfNumber(int number){ //獲取整數有多少位數
int count = 0;
while(number>0){
number = number/10;
count++;
}
return count;
}
}