问题描述
:
生成从
1
到
n(n<10)
的
n
个数的全部可能的排列(不一定按升序输出)
输入要求
:
占一行
,
输入整数
n
输出要求
:
输出
1
到
n
的全排列
输入样例
:
3
输出样例
:
123
132
213
231
321
312
#include iostream
using namespace std;
int a[100],n;
void fun(int x){
int i,j,t;
if(x==n){
for(i=1;i<=x;i++)
cout<<a[i];
cout<<endl;
}
for(j=x;j<=n;j++)
{
t=a[j];
a[j]=a[x];
a[x]=t;
fun(x+1);
t=a[j];
a[j]=a[x];
a[x]=t;
}
}
int main()
{
int i;
cin>>n;
for(i=1;i<=n;i++)
a[i]=i;
fun(1);
return 0;
}
using namespace std;
int a[100],n;
void fun(int x){
int i,j,t;
if(x==n){
for(i=1;i<=x;i++)
cout<<a[i];
cout<<endl;
}
for(j=x;j<=n;j++)
{
t=a[j];
a[j]=a[x];
a[x]=t;
fun(x+1);
t=a[j];
a[j]=a[x];
a[x]=t;
}
}
int main()
{
int i;
cin>>n;
for(i=1;i<=n;i++)
a[i]=i;
fun(1);
return 0;
}