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

C語言排列組合練習:從1、2、3、4中組成互不相同的三位數

     編輯:關於C語言

C語言排列組合練習:從1、2、3、4中組成互不相同的三位數

題目:用數字 1、2、3、4 組成三位數,要求百、十、個位數字互不相同,輸出所有組合並計數。

三層迴舉法

#include <stdio.h>

int main() {
    int count = 0;
    for (int i = 1; i <= 4; i++)       // 百位
        for (int j = 1; j <= 4; j++)   // 十位
            for (int k = 1; k <= 4; k++) // 個位
                if (i != j && i != k && j != k) {
                    printf("%d%d%d ", i, j, k);
                    count++;
                }
    printf("\ncount=%d\n", count);
    return 0;
}

輸出結果

123 124 132 134 142 143 213 214 231 234 241 243
312 314 321 324 341 342 412 413 421 423 431 432
count=24

數學驗證

排列數 P(4,3) = 4 × 3 × 2 = 24,與程序結果一致。

擴展:遞歸生成全排列

若需從 n 個元素中取 m 個生成排列,可使用遞歸 + 訪問標記陣列,更具通用性。

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