求从M个数中娶N个数的组合,N<=M. 采用递归算法实现。
//从M 个数中取 N 个数的组合 void enumkind(int value[], int M, int N, int result[], int constant) { for(int i = M; i >= N; i--) { result[N - 1] = value[i - 1]; if (N > 1) { enumkind(value, i - 1, N - 1, result, constant); } else { for(int j = constant - 1; j >= 0; j--) { printf("%d ", result[j]); } printf(" "); } } } int _tmain(int argc, _TCHAR* argv[]) { int value[4] = {1,2,3,4}; int length = 4; int result[10]; enumkind(value, 4, 2, result, 2); getchar(); return 0; }