從 {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。