首页 > 代码库 > 蓝桥杯——分治法之子集合的个数

蓝桥杯——分治法之子集合的个数

{1,2,3}子集合的个数,有{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3},求n个元素组成的集合,m个元素组成的子集合的个数。

如上例,3个元素由其中2个组成的子集合有3个。

public class Main{

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print(cal(3, 2));
	}
	
	static int cal(int n,int m)
	{
		if(m==0||m>n)
		{
			return 0;
		}
		if(m==1||n==m)
		{
			return 1;
		}
		return m*cal(n-1, m)+cal(n-1, m-1);
	}
}