求1—n的全排列

来源:互联网 发布:网络编辑是做啥的 编辑:程序博客网 时间:2024/05/21 17:07
#include <iostream>
#include <cstdio>
using namespace std;
int a[15];
void print(int *a,int n,int cur)
{
    if(cur == n){
        printf("%d",a[0]);
        for(int i = 1; i < n; i++)
            printf(" %d",a[i]);
        cout<<endl;
    }
    else{
        for(int i = 1; i <= n; i++){
            int ok = 1;
            for(int j = 0; j < cur; j++)
                if(a[j] == i)
                ok = 0;
            if(ok){
                a[cur] = i;
                print(a,n,cur+1);
            }
        }
    }
}
int main()
{
    int n;
    while(cin>>n){
        print(a,n,0);
    }
    return 0;
}
0 0
原创粉丝点击