zoukankan      html  css  js  c++  java
  • 全排列

    对输入的n个数做全排列

    样例输入

    3

    1 2 3

    输出

    1 2 3

    1 3 2

    2 1 3

    2 3 1

    3 1 2

    3 2 1

    /*
    1...n全排列,不计算是否有重复
    */
    #include<cstdio>
    #include<string.h>
    using namespace std;
    const int maxn = 100;
    
    int rcd[maxn],num[maxn],vis[maxn];
    int n;
    
    int input(){
        if(scanf("%d",&n)==EOF)
            return 0;
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)
            scanf("%d",&num[i]);
        return 1;
    }
    
    
    void full_permutation(int l){
        int i;
        if(l==n){
            for(int i=0;i<n;i++){
                printf("%d",rcd[i]);
                if(i<n-1)
                    printf(" ");
            }
            printf("
    "); return ;
        }
        for(int i=0;i<n;i++){
            if(!vis[i]){
                rcd[l]=num[i];
                vis[i]=1;
                full_permutation(l+1);
                vis[i]=0;
            }
    
        }
    }
    
    int main(){
       while(input())
        full_permutation(0);
        return 0;
    }
    

      

    Knowing others is intelligence; Knowing yourself is true wisdom
  • 相关阅读:
    PowerDesigner导出word表结构
    Java
    Java
    Java
    Java
    Java
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/huicpc0212/p/4185984.html
Copyright © 2011-2022 走看看