編程題目:
50.輸入一個5位數,判斷它是不是迴文數。例如:12321是迴文數,個位與萬位相同,十位與千位相同。
示例代碼:
package program.calculation.exercise50;
import java.util.Scanner;
/**
* 50.輸入一個5位數,判斷它是不是迴文數。
* 例如:12321是迴文數,個位與萬位相同,十位與千位相同。
*/
public class PalindromicNumber {
public static void main(String[] args) {
System.out.println("請輸入一個5位數:");
@SuppressWarnings("resource")
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
System.out.println("第一種方式:");
if(isPalindromicNumber1(number)) {
System.out.println(number+"是迴文數!");
}else {
System.out.println(number+"不是迴文數!");
}
System.out.println("第二種方式:");
if(isPalindromicNumber2(number)) {
System.out.println(number+"是迴文數!");
}else {
System.out.println(number+"不是迴文數!");
}
}
//第一種方式:判斷是否是迴文數
private static boolean isPalindromicNumber1(int number) {
String str = Integer.toString(number);
char[] cs = str.toCharArray();
if(cs[0] == cs[cs.length-1]){
if(cs[1] == cs[cs.length-2]){
return true;
}
}
return false;
}
//第二種方式:判斷是否是迴文數
private static boolean isPalindromicNumber2(long number) {
int count = 0;
int[] numArr = new int[5];
do {
numArr[count] = (int)(number%10);
number /= 10;
count++;
}while(0 != number);
for (int i=0; i<count; i++) {
if(numArr[i] != numArr[--count]) {
return false;
}
}
return true;
}
}
結果顯示: