输入正整数n(n<10),输出ABCD...n个不同字母的全排列,输出时按升序每行显示一个结果
输入
正整数N(N<10)
输出
N个字母的全排列,升序排列,每行一个
样例输入
4
样例输出
ABCD
ABDC
ACBD
ACDB
ADBC
ADCB
BACD
BADC
BCAD
BCDA
BDAC
BDCA
CABD
CADB
CBAD
CBDA
CDAC
CDCA
DABC
DACB
DBAC
DBCA
DCAB
输入
正整数N(N<10)
输出
N个字母的全排列,升序排列,每行一个
样例输入
4
样例输出
ABCD
ABDC
ACBD
ACDB
ADBC
ADCB
BACD
BADC
BCAD
BCDA
BDAC
BDCA
CABD
CADB
CBAD
CBDA
CDAC
CDCA
DABC
DACB
DBAC
DBCA
DCAB
DCBA
#include<iostream>
#include<cstdio>
using namespace std;
const int MAXN=15;
bool a[MAXN];
int b[MAXN],n;
void printf()
{
for(int i=1;i<=n;i++)
printf("%c",b[i]+64);
printf("\n");
}
void f(int step)
{
for(int i=1;i<=n;i++)
{
if(!a[i])
{
b[step]=i;
a[i]=true;
if(step==n) printf();
else
f(step+1);
a[i]=false;
}
}
}
int main()
{
scanf("%d",&n);
f(1);
}