题解:(其实我认为它就是个循环)
#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
int x,a[10];
bool b[10]={1,1,1,1,1,1,1,1,1,1};
void ans(int);
void print();
int main()
{scanf("%d",&x);
ans(1); }
void ans(int n)
{ for(int i=1;i<=x;i++)
{if((b[i]))
{b[i]=0; a[n]=i;
if(n==x)print();
else ans(n+1);
b[i]=1; a[n]=0; }
}
}
void print()
{for(int i=1;i<=x;i++)
{cout<<setw(5)<<a[i]; }
cout<<endl; }