[阅读: 474] 2009-03-27 11:10:58
#define MAXN 100
void permutation(const char * str, char * outbase, int cur, int n)
{
if (n == 0)
{
outbase[cur] = 0;
printf("%s\n", outbase);
return ;
}
char strbk[MAXN];
for (int i = 0; i < n; i++)
{
memcpy(strbk, str, i);
outbase[cur] = str[i];
memcpy(strbk+i, str+i+1, n-i);
permutation(strbk, outbase, cur+1, n-1);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char in[] = "ABC";
char out[100];
for (int i = 1; i <= 3; i++)
{
permutation("ABC", out, 0, i);
}
return 0;
}
输出结果:
A
AB
BA
ABC
ACB
BAC
BCA
CAB
CBA
请按任意键继续. . .