n个a和m个b有几种排列方法可以用公式直接算即:(n+m)!/(n!*m!);
也可以理解为每次都是n-1个a和m个b排列以后把一个a放进去+把m-1个b和n个a排列后把一个b放进去,可用递归实现:
#include<stdio.h>
int f(int x,int y)
{
if(!x||!y) return 1;
return f(x-1,y)+f(x,y-1);
}
int main()
{
while(1)
{
int n,m;
scanf("%d%d",&n,&m);
printf("%d\n",f(n,m));
}return 0;
}