![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 long long sum=0; 6 void print_permutation(int n,int s,int *a,int cur);//n为输出的,s为元素个数,a为数组,cur当前位置. 7 int main() 8 { 9 int s[11]; 10 int n; 11 scanf("%d",&n); 12 sum=0; 13 print_permutation(n,10,s,0); 14 } 15 16 void print_permutation(int n,int s,int *a,int cur) 17 { 18 if(cur==s) 19 { 20 sum+=1; 21 if(sum==n) 22 { 23 for(int i=0;i<s;i++) 24 printf("%d",a[i]); 25 printf(" "); 26 } 27 } 28 else 29 { 30 for(int i=0;i<s;i++) 31 { 32 int ok=1; 33 for(int j=0;j<cur;j++) 34 { 35 if(a[j]==i) ok=0; 36 } 37 if(ok) 38 { 39 a[cur]=i; 40 print_permutation(n,s,a,cur+1); 41 } 42 } 43 } 44 }
单纯的排列。