完全配向(C言語)

完全な配列の問題

     自然数nを出力するように配置された全ての別個の許容配列、すなわち、n個の全体構成の任意の数を生成し、重複する番号が表示さが必要です。

             / *問題解決のアイデア:

             その数は、ライセンス供与されたと仮定すると、問題を解決するために、箱の内部にソートカードに相当します

             * /

#include<stdio.h>
int a[10],book[10]={0};//a代表盒子,book代表手上的牌 
int n;//n代表1~n 
void dfs(int step){
    int i;
    if(step==n){
        for(i=0;i<n;i++){
            printf("    %d",a[i]);
        }
        printf("\n");
        return;
    }
    for(i=0;i<n;i++){
        if(book[i]==0){
            a[step]=i+1;//将手上的牌放进盒子中去 
            book[i]=1;//表示牌已经不在手上 
            dfs(step+1);//递归 
            book[i]=0;//如果返回,就将牌从盒子里面抽出 
        }
    }
}
int main(){
    scanf("%d",&n);
    dfs(0);
    return 0;
}
公開された34元の記事 ウォンの賞賛6 ビュー4774

おすすめ

転載: blog.csdn.net/qq_42712280/article/details/100661216