首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 判斷五位數是否為回文數

     編輯:Java 相關知識

回文數檢測

五位數回文數定義:萬位=個位、千位=十位(如 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)

擴充:任意長度回文判斷

同樣邏輯適用於任意正整數,只需移除五位數限制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved