#include
#define MAX 100
int flag[MAX];
int n,j,k;
int tem[MAX];
void DFS(int j)
{
int i;
if(j==n+1)
{
for(i=1;i<=n;i++)
printf("%d ",tem[i]);
putchar(10);
}
for( i=1;i<=n;i++)
{
if(flag[i]!=0)
{
tem[j]=i;
flag[i]=0;
DFS(j+1);
flag[i]=i;//i必须是局部变量!!!!
}
}
}
int main( )
{
while(1)
{
scanf("%d",&n);
for( j=1;j<=n;j++)
flag[j]=j;
DFS(1);
putchar(10);
}
}
#include #define MAX 100 int flag[MAX]; int n,j,k; int tem[MAX]; void DFS(int j) { int i; if(j==n+1) { for(i=1;i<=n;i++) printf("%d ",tem[i]); putchar(10); } for( i=1;i<=n;i++) { if(flag[i]!=0) { tem[j]=i; flag[i]=0; DFS(j+1); flag[i]=i;//i必须是局部变量!!!! } } } int main( ) { while(1) { scanf("%d",&n); for( j=1;j<=n;j++) flag[j]=j; DFS(1); putchar(10); } }