输出N个不同字母的全排列

来源:互联网 发布:远程网络教育考试 编辑:程序博客网 时间:2024/05/02 18:52
输入正整数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

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();elsef(step+1);a[i]=false;}}}int main(){scanf("%d",&n);f(1);}