全排列

#include<stdio.h>
int b[100000]={0},a[100000],m,w;
bool p(int i)
{

if(b[i]==1)
{
return false;
}
return true;
}
int s(int n)
{
for(int i=1;i<=m;i++)
{
a[n]=i;

if(p(i))
{
b[i]=1;
if(n==m)
{
for(int j=1;j<=m;j++)
{
printf("%d ",a[j]);
}
printf("\n");
w=w+1;

}
else

s(n+1);

b[i]=0;
}
}

a[n]=0;
}
int main()
{
scanf("%d",&m);
s(1);
printf("%d",w);
}

posted @ 2016-08-28 17:00  刘cy  阅读(115)  评论(0编辑  收藏  举报