#include<cstdio>
#include<iostream>
using namespace std;
int n,a[10],b[10];
void dfs(int step)
{
if(step==n+1)
{
for(int i=1;i<=n;i++)
{
printf("%d",a[i]);
}
printf("
");
return ;
}
for(int i=1;i<=n;i++)
{
if(b[i]==0)//如果这个数还没有排,就放到当前位置,并继续放下一个位置的数
{
a[step]=i;
b[i]=1;
dfs(step+1);
b[i]=0;
}
}
return ;
}
int main()
{
while(~scanf("%d",&n))//输入需要排列的个数(n<10);
{
dfs(1);
}
return 0;
}
#include<stdio.h>
#include<algorithm>
using namespace std;
int main()
{
int num[10];
int i;
for(i=1;i<=8;i++)
{
num[i]=i;
}
do{
for(i=1;i<=8;i++)
{
if(i==8)printf("%d
",num[i]);
else printf("%d ",num[i]);
}
}while(next_permutation(num+1,num+1+8));//全排列函数
return 0;
}