首页 > 学院 > 开发设计 > 正文

生成1~n的排列

2019-11-08 02:54:28
字体:
来源:转载
供稿:网友

#include <iostream>#include <set>using namespace std;int A[1000];void PRint_permutation(int n, int * A, int cur){    if(n == cur){               //边界        for(int i = 0; i < n; i++){            cout<<A[i];        }        cout<<endl;    } else {        for(int i = 1; i <= n; i++){            int pd = 1;            for(int j = 0; j < cur; j++){              //判断在生成数组中是否存在这个值                if(A[j] == i) pd = 0;            }            if(pd){                A[cur] = i;                            //这个i不在数组中,添加到数组                print_permutation(n, A, cur + 1);            }        }    }}int main(){    int n;    cin>>n;    print_permutation(n, A, 0);                  //测试}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表