#include<stdio.h>
#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<stdio.h>
#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);
}
}