CodeVS1294 全排列 題解

#include <cstdio>
using namespace std;

bool flag[10+2];
int N, ans[10+2];

void Array(int n){
    if(n>=N){
        printf("%d", *ans);
        for(int i = 1; i<N; ++i) printf(" %d", ans[i]);
        printf("\n");
        return;
    }
    for(int i = 1; i<=N; ++i){
        if(!flag[i]){
            flag[i] = true;
            ans[n] = i;
            Array(n+1);
            flag[i] = false;
        }
    }
}

int main(){
    scanf("%d", &N);
    Array(0);
    return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章