题目网址找不到的了。。。。意思就是求1-9的全排列
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1000;
int n,k;
int vis[N];
int res;
int a[N];
int ans[N];
#define MM(x,y) memset(x,y,sizeof(x))
void dfs(int m)
{
int i,j;
if(m==n)
{
for(i=0;i<n-1;i++)
cout<<ans[i]<<" ";
cout<<ans[n-1]<<endl;
}
else
{
for(i=0;i<n;i++)
{
if(!vis[i])
{
vis[i]=1;
ans[m]=a[i];
dfs(m+1);
vis[i]=0;
}
}
}
}
int main()
{
int i,j;
while(cin>>n&&n)
{
MM(a,0);
MM(vis,0);
MM(ans,0);
for(i=0;i<n;i++)
{
a[i]=i+1;
}
dfs(0);
}
return 0;
}