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
    }

07-26 08:07