字母a-z,数字0-9,现需要其中任意3个作为密码,请输出所有可能组合。
void printAll(char outPut[], int k, int begin)
{
if (begin == k)
{
for (int i = 0; i < k; i++)
{
cout << outPut[i] << " ";
}
cout << endl;
return;
}
for (int i = begin; i < k; i++)
{
swap(outPut[i], outPut[begin]);
printAll(outPut, k, begin+1);
swap(outPut[i], outPut[begin]);
}
}
void combination(char a[], int n, int begin, char outPut[], int k, int pos)
{
if (pos == k)
{
printAll(outPut, k, 0);
return;
}
if (begin >= n)
{
return;
}
outPut[pos] = a[begin];
combination(a, n, begin+1, outPut, k, pos+1);
combination(a, n, begin+1, outPut, k, pos);
}
void PrintCombination(char a[], int n, int k)
{
char *outPut = new char[k];
combination(a, n, 0, outPut, k, 0);
delete []outPut;
}