键盘输入n(1<=n<=10)个字符,输出输出其全排序。第一行为字符个数k,第二行为k个字符,不用空格隔开。输出其每种排列占一行,各字符间用一空格隔开。
样例输入:
3
ABC
样例输出:
A B C
A C B
B A C
B C A
C B A
样例输入:
3
ABC
样例输出:
A B C
A C B
B A C
B C A
C B A
C A B
#include<iostream>
using namespace std;
void pailie(char a[],int n,int i)
{
int j;
if(n==i)
{
for(j=1;j<=n;j++)
{
cout<<a[j]<<' ';
}
cout<<endl;
}
else
{
for(j=i;j<=n;j++)
{
swap(a[i],a[j]);
pailie(a,n,i+1);
swap(a[i],a[j]);
}
}
}
int main()
{
int n,k;
cin>>n;
char a[10],b;
for(k=1;k<=n;k++)
{
cin>>b;
a[k]=b;
}
pailie(a,n,1);
return 0;
}