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

C語言練習實例1:四個數字組成不重複三位數(全排列去重)

     編輯:C 語言實例練習

C語言練習實例1:四個數字組成不重複三位數(全排列去重)

從 {1,2,3,4} 中選取三個不同數字組成三位數,三重循環生成全排列,條件 i!=j && i!=k && j!=k 過濾重複,共 24 個。

源代碼


#include<stdio.h>

int main() {
    int i, j, k;
    printf("\n");
    for (i = 1; i < 5; i++)
        for (j = 1; j < 5; j++)
            for (k = 1; k < 5; k++)
                if (i != k && i != j && j != k)
                    printf("%d,%d,%d\n", i, j, k);
    return 0;
}

運行結果


1,2,3
1,2,4
1,3,2
1,3,4
1,4,2
1,4,3
2,1,3
2,1,4
2,3,1
2,3,4
2,4,1
2,4,3
3,1,2
3,1,4
3,2,1
3,2,4
3,4,1
3,4,2
4,1,2
4,1,3
4,2,1
4,2,3
4,3,1
4,3,2

擴展

可用遞歸/回溯生成任意 n 取 k 的排列,或使用 C++ next_permutation。

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