- #include"iostream"
- #include<cstring>
- using namespace std;
- int a[400];
- void print_permutation(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++){
- int ok=1;
- for(int j=0;j<cur;j++){//查找0到cur-1中是否有重复的
- if(A[j]==i){
- ok=0;
- }
- }
- if(ok){
- A[cur]=i;
- print_permutation( n,a, cur+1);//递归
- }
- }
- }
- }
- int main(){
- int n;
- memset(a,0,sizeof(a));
- while(scanf("%d",&n)==1){
- print_permutation(n,a,0);
- }
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/1705201614661.html
来源: http://www.codesnippet.cn/detail/1705201614661.html