#include
inlinevoidSwap(char&a,char&b)
{
chartemp=a;
a=b;
b=temp;
}
voidPerm(charlist[],intk,intm)
{//生成list[k:m]的所有排列方式
inti;
if(k==m){//输出一个排列方式
for(i=0;i
#include
voidswap(int*a,int*b)
{
intt=*a;
*a=*b;
*b=t;
}
voidf(int*tosolve,intn)
{
staticintcount=1;
if(n==3)
{
printf("%d",*tosolve);
return;
}
for(inti=0;i<n;i++)
{
swap(*tosolve,*(tosolve+i));
printf("%d",*tosolve);
f(tosolve+1,n-1);
swap(*tosolve,*(tosolve+i));
}
}
intmain()
{
inttosolve[3]={1,2,3};
f(tosolve,3);
return0;
} |