用JAVA怎样实现这个算法?
有四道题,他们的分值的比重为 2:3:3:2
把2分 分给他们应如何分(必须是整数),以此类推
把3分、4分......n分 按照这个比例分成四分,但是每份分到的都为整数,应该如何实现?
注:总分可以不用分完,但是越接近分完越好。------解决方案--------------------
新手来试试写写主要思路...
首先知道权重大小后,将同样大的放一组,标号(权重多少就多少。例如权重3,有4个,
则T[3][0]=,T[3][1]=....etc)
如例子:则
private int marks=5;
private int weight1=2,weight4=2,weight2=3,weight3=3;
private int Q[]={weight1,weight2,weight3,weight4};
private int T[][];
private int getWeight(int Q[]){
int weight=0;
for(i=0;i<Q.length;i++){
while(true){
int j=0;
if(T[Q[i]][j]==null){
T[Q[i]][j]=i;
break;
}else{
j++;
}
weight+=Q[i];
}
}
return weight;
}
如此,题目号被对应的权重记录下来,并返回总权重
然后知道分值总数,得到总权重,然后用分值总分/总权重,向下取整。
private int averageWeight(int weight){
return marks/weight;
}
然后if(T[][]!=null),则mark[T[][]]=averageWeight(getWeight(Q[]);。
就不写了 ....