#include<iostream>
using namespace std;
const int N = 10;
int a[N],n;
bool st[N];
void dfs(int u)
{
if(u == n + 1)//dfs退出的条件
{
for(int i = 1;i <= n;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return ;
}
for(int i = 1;i <= n;i++)
{
if(!st[i])
{
st[i] = true;
a[u] = i;
dfs(u + 1);//下一层
st[i] = false;//恢复现场,回溯
}
}
}
int main()
{
cin>>n;
dfs(1);
return 0;
}
dfs(枚举)
最新推荐文章于 2024-09-13 16:27:15 发布