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

Java 實作《C 語言經典 100 題》—— 程式 1:不重複數字的三位數組合

     編輯:Java 綜合教學

Java 實作《C 語言經典 100 題》—— 程式 1:不重複數字的三位數組合

本系列文章將經典的《C 語言經典 100 題》使用 Java 語言重新實作,旨在幫助開發者透過熟悉的語言掌握基礎演算法邏輯。第一題經典問題:給定數字 1、2、3、4,能組成多少個互不相同且無重複數字的三位數?具體有哪些?

問題分析

三位數的百位、十位、個位皆可從 {1,2,3,4} 中選取。核心在於生成所有排列並過濾掉含重複數字的組合。採用三層巢狀迴圈分別代表百位、十位、個位,利用條件判斷確保三數字兩兩不同。

Java 原始碼實作

public class Java01 {
    public static void main(String[] args) {
        int i, j, k, num = 0;
        for (i = 1; i < 5; i++) {          // 百位
            for (j = 1; j < 5; j++) {      // 十位
                for (k = 1; k < 5; k++) {  // 個位
                    if (i != j && i != k && k != j) {
                        System.out.print(i * 100 + j * 10 + k + " ");
                        if (++num % 5 == 0) {
                            System.out.println(); // 每 5 個換行
                        }
                    }
                }
            }
        }
        System.out.println("\n" + "無重複數字三位數個數為:" + num);
    }
}

執行結果說明

程式會列印所有符合條件的三位數(共 24 個),並每行顯示 5 個,最後輸出總數。這展示了窮舉法解決排列組合問題的基本思維,也是後續更複雜演算法的基礎。

延伸思考

  • 若數字範圍擴大(如 1-9),巢狀迴圈層數固定,但可改用遞迴或 Collections 工具類生成排列。
  • 效能優化:對於固定小範圍,三層迴圈極其高效;大範圍時可考慮位運算或回溯剪枝。

完整程式碼已上傳至 GitHub,歡迎參考學習。

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