public class Accumulator {
private int[] A;
public Accumulator(int[] X) {
A= new int[X.length];
for (int i=0; i<X.length; i++){
A[i] = X[i];
}
}
public int getOverM(int m){
for(int j=0; j<A.length;j++){
if(m < A[j])
{
}
}
}
public static void main(String args[]){ // you can use the main method to test your code
int[] A = {2,4,3,5,8};
int r=new Accumulator(A).getOverM(3); //change argument to test different cases
System.out.println(r);
}
}
嗨,我从事此工作已经有很长时间了,我知道这似乎很简单,但是我无法理解....我只能在方法getOverM()中更改代码,而不能编辑其他方法。
我曾想过要使用if语句,但是我只是不知道如何编写一个代码,该代码显示出与m相比下一个最大的索引号。
问题:考虑下面的Accumulator类,该类缺少该方法的代码
'getOverM(int m)'。
getOverM应该返回其数组A的第一个元素的索引
值大于或等于m。
如果A中没有元素的索引大于或等于m,则该方法
应该返回-1。
例如,如果A是数组{2,4,3,5,8},则
getOverM(3)将返回1
getOverM(2)将返回0
getOverM(7)将返回4
getOverM(20)将返回-1
(提示:数组A的长度由A.length给出)
插入方法getOverM的主体的代码。
最佳答案
我认为这就是您一直在寻找的
public int getOverM(int m){
for(int j = 0; j < A.length; j++){
if(m <= A[j]){ //if the current element is greater than or equal to m then return the index .
return j;
}
}
return -1; // return -1 if the loop ends by not finding any element which is greater than or equal to m
}