作业帮 > 综合 > 作业

设计c语言程序输出m个A,n个B可以组合成多少个不同排列的问题?

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 04:01:06
设计c语言程序输出m个A,n个B可以组合成多少个不同排列的问题?
例如:2个A与2个B可以组成6种:AABB ABAB ABBA BAAB BABA BBAA
设计c语言程序输出m个A,n个B可以组合成多少个不同排列的问题?
共有C(m+n,n)种可能,(C(X,Y)是组合数)
共有m+n个位置,从m+n个位置中选出n个位置,放B就可以了.
经过排序后得到:
AABB ABAB ABBA BAAB BABA BBAA
定义一个函数fun(char ch[]);
fun("AABB")等于"ABAB",
fun("ABAB")等于"ABBA",
……
#include
#include
#include
long C(int m,int n);
char *next(char ch[],int n);//
void main()
{
int m,n,N;
char ch[100];
printf("请输入A的个数,B的个数\n");
scanf("%d %d",&m,&n);
N=C(m+n,n);
printf("共有%d种排列\n",N);
for(int i=0;i