五位數回文數定義:萬位=個位、千位=十位(如 12321、45554)。
import java.util.Scanner;
public class PalindromeArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("請輸入五位數:");
long num = sc.nextLong();
if (num < 10000 || num > 99999) {
System.out.println("非五位數,請重新輸入");
return;
}
int[] digits = new int[5];
for (int i = 4; i >= 0; i--) {
digits[i] = (int)(num % 10);
num /= 10;
}
boolean isPalindrome = true;
for (int i = 0; i < 5/2; i++) {
if (digits[i] != digits[4-i]) {
isPalindrome = false;
break;
}
}
System.out.println(isPalindrome ? "是回文數" : "不是回文數");
}
}
String s = String.valueOf(num);
boolean isPal = s.equals(new StringBuilder(s).reverse().toString());
int original = (int)num;
int reversed = 0;
int temp = original;
while (temp > 0) {
reversed = reversed * 10 + temp % 10;
temp /= 10;
}
boolean isPal = (original == reversed);
| 方法 | 時間複雜度 | 空間複雜度 | 適用場景 |
|---|---|---|---|
| 陣列比較 | O(d) | O(d) | 教學示範位運算 |
| 字串反轉 | O(d) | O(d) | 程式碼最簡潔,泛用性高 |
| 數學反轉 | O(d) | O(1) | 嵌入式/效能敏感場合 |
(d = 位數,此處固定為 5)
同樣邏輯適用於任意正整數,只需移除五位數限制。