dfs实现数的全排列

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
bool vis[15];
int a[15];
int n;
void dfs(int x){
    if(x==n+1){
        for(int i=1;i<=n;i++)
        cout<<a[i]<<' ';
        cout<<endl;
        return;
    }
    for(int i=1;i<=n;i++)
    {
        if(!vis[i]){
            vis[i]=1;
            a[x]=i;
            dfs(x+1);
            vis[i]=0;
        }
    }
    return;
}
int main(){
    while(cin>>n){
        memset(vis,0,sizeof(vis));
        dfs(1);
    }   
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/mch5201314/p/10593102.html
今日推荐