#include<bits/stdc++.h>
using namespace std;
int n,a[10];
bool f[10];
void dfs(int l)
{
if(l>n)
{
for(int i=1;i<l;i++)
{
cout<<setw(5)<<a[i];
}
cout<<endl;
return;
}
else
{
for(int i=1;i<=n;i++)
{
if(!f[i])
{
f[i]=1;
a[l]=i;
dfs(l+1);
f[i]=0;
}
}
return;
}
}
int main()
{
cin>>n;
dfs(1);
return 0;
}
我自测n=9时一秒完全不够,但还是过了,是不是数据太水,求解惑?