#include<bits/stdc++.h>
using namespace std;
int n, a[50],ans[50],b[50];
void kfc(int p) {
if (p==n) {
for (int i=0;i<n;i++)
{
cout <<ans[i]<< " ";
}
cout<<endl;
return ;
}
for (int i=1;i<=n;i++) {
if (b[i]==0)
{
b[i]=1;
ans[p] = i;
kfc(p+1);
b[i]=0;
}
}
}
int main() {
cin>>n;
for (int i=1;i<=n;i++)
b[i]=0;
kfc(0);
}
[题目描述]
有1.....n人照相,按照他们排列位置的不同照相,问有多少种排列方法?一行一个排列,按字典序输出。
输入
一行 n,n<=11
输出
每行一个排列。
样例输入