这个题不是简单的排列组合 M选2,需要将所有的数分配完全
public static void main(String[] args) {
Integer[] nums = {1,2,3,4,5,6,7,8,9,10};
//改用list的原因,list有增删方法且list增删快
ArrayList<Integer> integers = new ArrayList<>(Arrays.asList(nums));
int length = nums.length;
Integer[] play = new Integer[length];
//使用递归 递归的出来得到一个组合方式,i表示当前已取值个数
getNums(integers,play,0);
//长度计算 已知的数学公式 * C(10,2)*C(8,2)*C(6,2)*C(4,2)*C(2,2)/ (5!)
int result = 1;
int divide = 1;
for (int i = length,j=1; i >=2 ; i-=2,j++) {
result *= i * (i -1)/2;
divide *= j;
}
result = result / divide;
System.out.println(String.format("理论%d种组合方式 - 实际%d种组合方式,最终结果%s",result,sum,result == sum ? "相符" : "不相符"));
}
/**
* 长度大于2 时
*/
stati