晚上好
我试图解决一个问题:
您将获得一个int []标记,其中包含您在课程中收到的成绩。每
等级在0到10之间,包括0和10。假设你将来会收到10分
分配,确定您需要的最低未来分配数
最终成绩为10.如果您的平均成绩为9.5或者,您将获得10的最终成绩
更高点。
定义
类别:目标
方法:需要
参数: int []
返回:int
方法签名:int need(int [] 标记)
(确保您的方法是公开的)
示例
1)
{9,10,10,9}返回:0
你的平均值已经是9.5,所以没有 需要进一步的作业。
)2)
{8,9}返回: 4
在这种情况下,您还需要4个作业。随着每一个 完成任务后,你的平均值可以增加到9,9.25,9.4 和9.5分别为
我的解决方法是:
public int need(int[] marks) {
int i=0, sum = 0, avg = 0, k = 0, counter = 0, ToCompleteMarks[] = null;
for (i; i < marks.length; i++) {
sum = sum + marks[i];
ToCompleteMarks[i] = marks[i] + ToCompleteMarks[i];// To copy the array so when i add 10 later to the program the original array does not change > good ?
}
avg = sum / marks.length;
while (avg < 9.5)
ToCompleteMarks[i]; //I need to add the number 10 to the array then get back to calculate the avg . But no ideas how to do that ! .
counter++;
return counter;
}
如果你可以帮助我,那我真的很棒
感谢
答案 0 :(得分:0)
我们可以执行以下步骤: 1.获得平均值和所需平均值之间的差值(9.5) LEts说计算的平均值是8。 差异将是9.5-8 = 1.5 因此,我们可以使用Math.ceil(差异)获取差异的上限(上限值)。这里它将是2.因此我们需要为数组添加两个赋值。