排列组合
程序代码:
组合问题
给定一个含有n个元素的整型数组a,从中任取m个元素,求所有组合。比如下面的例子
a = 1, 2, 3, 4, 5
m = 3
输出
1 2 3, 1 2 4, 1 2 5, 1 3 4, 1 3 5, 1 4 5
2 3 4, 2 3 5, 2 4 5
3 4 5
bool IsValid(int lastIndex, int value)
{
int buffer[100];
int i;
for (i = 0; i < lastIndex; i++)
{
if (buffer[i] >= value)
return false;
}
return true;
}
void Select(int t, int n, int m)
{
bool IsValid(int lastIndex, int value);
int buffer[100];
int i;
if (t == m)
{
printArray(buffer, m);
}
else
{
for (i = 1; i <= n; i++)
{
buffer[t] = i;
if (IsValid(t, i))
{
Select(t + 1, n, m);
}
}
}
}
为什么不行,求帮帮忙









