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

Java 基礎練習:遞歸階乘、九九乘法表、陣列排序與字串反轉

     編輯:關於C++

整理五個 Java 控制台小程式,適合初學者熟悉迴圈、遞歸、陣列操作與字串處理。所有功能整合在單一 Test 類中,透過 Scanner 互動輸入輸出。

功能清單

  1. 遞歸階乘:輸出 4 * 3 * 2 * 1 = 24 格式。
  2. 兩數字和為 13:列出 0~9 中相加等於 13 的所有組合。
  3. 九九乘法表:標準下三角輸出。
  4. 陣列排序:輸入 3 整數,冒泡排序降序輸出,並回傳最大最小值差。
  5. 字串反轉:逐字元從尾輸出至頭。

完整代碼

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 1. 遞歸階乘
        System.out.print("請輸入階乘起始數: ");
        long n = in.nextLong();
        System.out.println(recurrence(n));

        // 2. 兩數和為 13
        getForString();

        // 3. 九九乘法表
        printString();

        // 4. 陣列排序
        int[] arr = new int[3];
        System.out.println("請輸入 3 個整數:");
        for (int i = 0; i < 3; ++i) arr[i] = in.nextInt();
        compute(arr);

        // 5. 字串反轉
        in.nextLine(); // 消耗換行
        System.out.print("請輸入欲反轉字串: ");
        getString(in.nextLine());
    }

    // 1. 遞歸階乘
    private static long recurrence(int n) {
        if (n == 1) { System.out.print("1 = "); return 1; }
        System.out.print(n + " * ");
        return n * recurrence(n - 1);
    }

    // 2. 0~9 找和為 13
    private static void getForString() {
        System.out.println("0~9 相加為 13 的組合:");
        for (int a = 0; a <= 9; ++a)
            for (int b = 0; b <= 9; ++b)
                if (a + b == 13) System.out.printf("a=%d b=%d%n", a, b);
    }

    // 3. 九九乘法表
    private static void printString() {
        System.out.println("九九乘法表:");
        for (int i = 1; i <= 9; ++i) {
            for (int j = 1; j <= i; ++j)
                System.out.printf("%d*%d=%-3d", j, i, i*j);
            System.out.println();
        }
        System.out.println("九九乘法表結束!");
    }

    // 4. 陣列排序 (冒泡降序)
    private static int compute(int[] a) {
        System.out.println("排序結果:");
        for (int i = 0; i < a.length; ++i)
            for (int j = 0; j < a.length; ++j)
                if (a[i] > a[j]) { int t = a[i]; a[i] = a[j]; a[j] = t; }
        for (int v : a) System.out.print(v + ",");
        System.out.println("排序結束!");
        return Math.abs(a[0] - a[a.length - 1]);
    }

    // 5. 字串反轉
    private static void getString(String s) {
        System.out.print("反轉結果: ");
        if (s != null && !s.isEmpty())
            for (int i = s.length() - 1; i >= 0; --i) System.out.print(s.charAt(i));
        System.out.println();
    }
}

執行範例

請輸入階乘起始數: 4
4 * 3 * 2 * 1 = 24
0~9 相加為 13 的組合:
a=4 b=9
a=5 b=8
...
九九乘法表:
1*1=1  1*2=2  2*2=4  ...
...
請輸入 3 個整數:
3 6 8
排序結果:
8,6,3,排序結束!
請輸入欲反轉字串: sdee333
反轉結果: 333eeds

學習重點

  • 遞歸終止條件與回傳值傳遞。
  • 雙重迴舉窮舉組合。
  • 巢狀迴圈控制乘法表三角形狀。
  • 冒泡排序雙重迴圈與交換邏輯。
  • 字串索引從 length()-1 遞減至 0。

建議初學者手敲一次,體會控制流與輸出格式化細節。

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