AcWing 842. 排列数字
原题链接
简单
作者:
no_one
,
2022-06-24 00:17:16
,
所有人可见
,
阅读 70
全都在注释里了
#include<iostream>
using namespace std;
const int N = 10;
bool yin[N]; // 储存一组数有没有被搜过
int a[N]; // 储存数
int n;
void dfs(int u)
{
if(u == n) // 如果搜到了要找的数 就输出
{
for(int i = 0; i < n; i ++)
cout << a[i] << ' ';
cout << endl;
return;
}
for(int i = 1; i <= n; i ++)
{
// 如果搜完了下面这个if就进不了,dfs结束。
if(!yin[i]) // 如果没有搜过就搜
{
a[u] = i; // 储存
yin[i] = true; // 标记
dfs(u + 1);
yin[i] = false;// 恢复标记
}
}
}
int main()
{
cin >> n;
dfs(0);
return 0;
}