描述:
输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。
输入:
输入一个小于10的正整数n。
输出:
按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。
输入样例:
3
输出样例:
abc
acb
bac
bca
cba
cab
#include<iostream>
using namespace std;
int n;
char A[30]={'a','a','b','c','d','e','f','g','h','i','j'};
void dfs(int m)
{
if(m==n+1)
{
for(int i=1;i<=n;i++)
cout<<A[i];
cout<<endl;
}
else
{
for(int i=m;i<=n;i++)
{
swap(A[m],A[i]);//交换
dfs(m+1);
swap(A[m],A[i]);//回溯
}
}
return ;
}
int main()
{
while(cin>>n)
dfs(1);
return 0;
}