1. 程式人生 > >n個a和m個b的排列

n個a和m個b的排列

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;
}