输入3
输出:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
代码:
#include<cstdio>
#include<cstring>
int a[10],b[10],n;
void f(int v)
{
int i;
if(v>n)
{
for(i=1;i<=n;++i)
{
printf("%d ",a[i]);
}
puts("");
}
else
{
for(i=1;i<=n;++i)
{
if(!b[i])
{
b[i]=1;
a[v]=i;
f(v+1);
b[i]=0;
}
}
}
}
int main()
{
memset(a,0,40);//memset(a,0,sizeof(a)) memset(a,0,sizeof(a[0])*10)
memset(b,0,40);
while(scanf("%d",&n),n)
f(1);
return 0;
}