生成1~n的排列

来源:互联网 发布:网络攻防渗透 编辑:程序博客网 时间:2024/05/22 15:49

先生成以1开头的排列,再是2,最后到;

#include <iostream>using namespace std;int a[100];void print_per(int n,int a[],int cur){    if(cur==n)    {        for(int i=0;i<n;i++)cout<<a[i];        cout<<endl;    }    else    {        for(int i=1;i<=n;i++)在a[cur]填上个种整数i;        {            int ok=1;            for(int j=0;j<cur;j++) //如果i在前面已经出现过,则i不能放在该位置                if(a[j]==i)ok=0;            if(ok)            {                a[cur]=i;                print_per(n, a,cur+1);            }        }    }}int main(){    int n;    while(cin>>n)    {        print_per(n,a,0);    }    return 0;}


原创粉丝点击