#include "bits/stdc++.h" using namespace std; int n; void pailie(int a[],int k,int m) { if(k == m){ for(int i=0;i < n;i++) cout << a[i] << " "; cout << endl; } else{ for(int i=k;i<=m;i++) { swap(a[i],a[k]); pailie(a,k+1,m); swap(a[i],a[k]); } } } int main() { while(cin >> n) { int a[n]; for(int i=0;i < n;i++) a[i] = i+1; pailie(a,0,n-1); } }
代码理解起来可以,想是想不出。。