#include<iostream>
using namespace std;
const int N = 10;
int path[N];//保存排序
bool st[N];//判断数字是否被使用过
int n;
void dfs(int x)
{
if(x == n)//数填满了
{
for(int i = 0;i<n;i++)
{
cout << path[i] << " ";
}
cout << endl;
}
for(int i = 1;i <= n;i++)
{
if(!st[i])
{
path[x] = i;//入空
st[i] = true;//标记为用过了
dfs(x + 1);//如果没放满继续进行下一步操作
st[i] = false;//回溯
}
}
}
int main()
{
cin >> n;
dfs(0);
return 0;
}
acwing 842 排列数
最新推荐文章于 2024-08-08 15:12:59 发布