1.全排列问题:输入n个不同的字符串,给出它们所有的n个字符全排列
void perm(char str[],int d,int n)
{
int i;
char temp;
if(d==n-1)
{
for(i=0;i<d;i++)
cout<<str[i]<<" ";
cout<<endl;
}
for(i=d;i<n;i++)
{
temp=str[d];
str[d]=str[i];
str[i]=temp;
perm(str,d+1,n1);
temp=str[i];
str[i]=str[d];
str[d]=temp;
}
}
2.组合问题,从自然数1,2,3,,,,n取k个数的所有组合
void combi(int str[],int d,int boundary,int k,int n)
{
int i;
int temp;
if(d==k)
{
for(i=0;i<k;i++)
cout<<str[i]<<" ";
cout<<endl;
}
for(j=boundary;j<=n;j++)
{
temp=str[boundary];
str[boundary]=str[j];
combi(str,d+1,j+1,k,n);
str[boundary]=temp;
}
}