生成全排列
#include <iostream>
#include <cstring>
using namespace std;
int temp[20],n;
void dfs(int *a,int cur)
{
if(cur==n+1)
{
for(int j=1;j<n;j++)
cout<<a[j]<<",";
cout<<a[n]<<endl;
}
else for(int i=1;i<=n;i++)
{
if(temp[i]==0)
{
temp[i]=1;
a[cur]=i;
dfs(a,cur+1);
temp[i]=0;
}
}
}
int main()
{
while(cin>>n)
{
int a[20];
memset(a,0,sizeof(a));
memset(temp,0,sizeof(temp));
dfs(a,1);
}
return 0;
}