#define _CRT_SECURE_NO_WARNINGS 1
//整体利用DFS的思想
#include<iostream>
using namespace std;
const int N = 10;
int path[N];//path记录当前的排列
bool st[N];//bool数组st表示状态,st[i]=true表示未被使用,false表示使用过
int n;
void DFS(int u)
{
if (u == n)
{
for (int i = 0; i < n; i++) cout << path[i] << ' ';
cout << endl;
return;
}
for (int i = 1; i <= n; i++)
{
if (!st[i])
{
path[u] = i;
st[i] = true;
DFS(u + 1);
st[i] = false;//一旦出递归函数入口,立马改变st[i]的状态,因为返回上一层时候,st[i]仍未被使用
}
}
}
int main()
{
cin >> n;
DFS(0);//0表示第一层
return 0;
}
acwing842排列数字(DFS)
最新推荐文章于 2024-09-06 10:38:06 发布