题目:
代码:
#include<iostream>
using namespace std;
#define M 10005
int n;
int sa[M];int book[M];
#include<iomanip>
void dfs(int step)
{
if(step==n+1)
{
for(int i=1;i<=n;i++)
{
cout<<setw(5)<<sa[i];
}
cout<<endl;
return ;
}
for(int i=1;i<=n;i++)
{
if(book[i]==0)
{
book[i]=1;
sa[step]=i;
dfs(step+1);
book[i]=0;
}
}
}
int main()
{
cin>>n;
//全排列,使用标记策略
dfs(1);
}