反序生成由1至n个数的全排列。
#include<bits/stdc++.h>
using namespace std;
const double PI=acos(-1.0);
#define _max 0x7fffffff
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
vector<int>A;
for(int i=n;i>=1;i--)
A.push_back(i);
int FLAG=1;
while(FLAG)
{
for(int i=0;i<n;i++)
printf("%d ",A[i]);
printf("\n");
FLAG=prev_permutation(A.begin(),A.end());
}
}
return 0;
}