直接使用C++中的next_permutation来搞定全排列问题了~
# include<cstdio> # include<iostream> # include<algorithm> using namespace std; int a[20]; int main(void) { int n; while ( cin>>n ) { for ( int i = 1;i <= n;i++ ) { a[i] = i; } do { for ( int i = 1;i <= n;i++ ) { if ( i==1 ) { cout<<a[i]; } else { cout<<" "<<a[i]; } } cout<<endl; }while(next_permutation(a+1,a+1+n)); } return 0; }