[白俊/c+]10974番すべてのシーケンス


10974問題リンク

質問する


Nが与えられている場合は、1からNまでの数列をアルファベット順に出力するプログラムを作成します.

入力


第1行はN(1≦N≦8)を与える.

しゅつりょく


1行目からN!行にまたがってすべてのシーケンスを印刷します.

に答える


並べ替え問題については,遡及方式を用いて解いた.
アクセス配列を作成してアクセスした場合は、残りの空の値を入力し、出力後に返されるようにシーケンスの詳細な説明とコードを入力できます.次の記事を参照してください.👉 [アルゴリズム]シーケンス(Permutation)

ソースコード

#include <stdio.h>
#include <iostream>

using namespace std;

int N;
int num[9];
int visited[9];

void permutation(int idx) {
    if (idx == N) {
        for(int i=0; i<N;i++) {
            cout << num[i] << " ";
        }
        cout << '\n';
        return;
    }
    
    for(int i=0;i<N;i++) {
        if (visited[i] != true) {
            visited[i] = true;
            num[idx] = i+1;
            permutation(idx+1);
            visited[i] = false;
        }
    }
    
}

int main() {
    cin >> N;
    permutation(0);
}

正解