一个数学题:200个人分成八组

来源:百度知道 编辑:UC知道 时间:2024/06/24 19:10:01
一共有200人。分成8个组。分组必须满足下面的要求:从这8个组里要人。1到200随便要。总能找出一组或者几个组加起来等于所要的人数。(组里的人数是固定的)。答案知道,要个程序代码,Java/C++ 都行

构思中,请稍候...
已搞定,代码如下(Java):

/**
*
* @author laocu
*
*/
public class Test1 {

private int[] value; //详细分组情况
private int count; //分组个数
private int sum; //总人数

public Test1(int sum, int count) {
this.sum = sum;
this.count = count;
this.value = new int[count];
}

/**
* 计算输出人数分组结果
*/
public void printValue() {
System.out.println("总人数:" + sum + " ;分组个数:" + count);
if(sum<count) {
System.out.println("组数比人数多,无法分组!");
return;
}
int i = 1;
int index = 0;
l:for( ; index<count; index++) {
int temp = getCurrNum();
for( ; i<=sum; i++) {
if(temp<i) {
if(temp+i>sum)
break l;
value[index] = i;
i++;
continue l;
}
}
break;
}
setLeaveValue(index);
if(this.getTotalNum()<sum) { //若分组完,还有人员未在分组内,则