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

Java 經典練習:輸入不超過 5 位的正整數,求位數並逆序輸出各位數字

     編輯:關於C

題目需求

  1. 讀取一個不超過 5 位的正整數。
  2. 輸出該數字的位數。
  3. 逆序輸出各位數字(個位在前,最高位在後)。

解題思路

將輸入視為字串處理最簡單:
1. 直接讀取字串 s。
2. 位數即 s.length()。
3. 從字串末尾向前遍歷輸出字符,即得逆序數字。

完整 Java 程式碼

package com.example;

import java.util.Scanner;

public class ReverseDigits {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("請輸入一個不大於 5 位的正整數:");
        String s = sc.nextLine().trim(); // 移除可能的空白

        // 輸入驗證(可選)
        if (!s.matches("\\d{1,5}")) {
            System.out.println("輸入無效:請輸入 1~5 位數字。");
            return;
        }

        int len = s.length();
        System.out.print("逆序數字:");
        for (int i = len - 1; i >= 0; i--) {
            System.out.print(s.charAt(i));
        }
        System.out.println();
        System.out.println("位數:" + len);
    }
}

執行範例

請輸入一個不大於 5 位的正整數:12345
逆序數字:54321
位數:5

進階變體:純算術解法(不轉字串)

若要求不使用字串操作,可用除 10 取餘數:

int n = sc.nextInt(); // 讀取整數
int count = 0;
System.out.print("逆序數字:");
while (n > 0) {
    System.out.print(n % 10); // 輸出個位
    n /= 10;                  // 去掉個位
    count++;
}
System.out.println("\n位數:" + count);

注意:此法會忽略前導零(如輸入 00123 會被讀為 123),若需保留前導零必須用字串法。

常見陷阱提醒

  • Scanner.nextInt() 會吞掉換行符,後續若呼叫 nextLine() 會讀到空行,建議統一用 nextLine() 讀字串再轉換。
  • 題目說「不多於 5 位」,實際應檢查長度 ≤ 5 且全為數字。
  • 逆序輸出時,for (int i = len-1; i >= 0; i--) 比 i > 0; i-- 再 i-1 更直觀不易出界。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved