#include <iostream>
using namespace std;
int n;
int a[100],pd[100];
void print()
{
for(int i=1;i<=n;i++)
{
cout << a[i] << ' ';
}
cout << endl;
}
void dfs(int k)
{
if(k==n)
{
print();
return ;
}
for(int i=1;i<=n;i++)
{
if(pd[i]==0)
{
a[k+1]=i;
pd[i]=1;
dfs(k+1);
pd[i]=0; //回溯
}
}
}
int main ()
{
cin >> n;
dfs(0);
return 0;
}
全排列 (回溯)
于 2022-02-17 15:24:03 首次发布