求数组中任取N个元素的所有可能组合
输入:数组arr{1,2,3,4,5,6} 数组长度6, 取4个元素
输出:四个元素的排列组合
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
int arr[] = { 1, 2, 3, 4, 5, 6 };
int res[4];
int len = 6;
int num = 4;
void dfs(int start, int count, int select) {
int i = 0;
for (i = start; i < len - count + 1; i++) {
res[count - 1] = i;
if (count - 1 == 0) {
int j;
for (j = num - 1; j >= 0; j--)
printf("%d ", arr[res[j]]);
printf("\n");
}
else
dfs(i + 1, count - 1, select);
}
}
int main() {
dfs(0,4,4);
system("pause");
}
1 2 3 4
1 2 3 5
1 2 3 6
1 2 4 5
1 2 4 6
1 2 5 6
1 3 4 5
1 3 4 6
1 3 5 6
1 4 5 6
2 3 4 5
2 3 4 6
2 3 5 6
2 4 5 6
3 4 5 6
请按任意键继续. . .