AcWing 842. 排列数字

给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。

现在,请你按照字典序将所有的排列方法输出。

#include<bits/stdc++.h>
using namespace std;
int n,p[10];
bool k[10];
void out()
{
    for(int i=1;i<=n;i++)
        cout<<p[i]<<" ";
    puts("");
}
void dfs(int x)
{
    if(x>n)out();
    if(x<=n)
        for(int j=1;j<=n;j++)
            if(k[j]==0)
            {
                p[x]=j;
                k[j]=1;
                dfs(x+1); 
                k[j]=0;
            }
}
int main()
{
    cin>>n;
    dfs(1);
    return 0;
}

 

posted @ 2020-12-29 16:47  君与  阅读(64)  评论(0编辑  收藏  举报