2016-11-20 3 views
1

Я пытаюсь написать метод класса, который квадратизирует, а затем суммирует массив, но я не знаю, как продвигаться отсюда. Я также не знаю, должен ли я разбить метод на квадрат, а затем другой, чтобы суммировать его, или если я могу фактически объединить их в этот. Вот что я придумал до сих пор ... хотя его немного.Создание класса, который квадратизирует и суммирует массив?

public int sqSum(){ 
    for(int i=0; i<array.length; i++) 

     int sqSum = array[i] * array[i]; 

    return sqSum; 
} 
+0

Просто подумайте о проблеме еще ... Вы объявляете и переопределяете одну переменную. Вы не суммируете и не добавляете ни к чему. –

+0

Возможный дубликат [Метод сумм массивов] (http://stackoverflow.com/questions/35967397/array-sum-method) –

ответ

1

Проблема заключается в том, вы фактически объявляя ту же переменную sqSum снова и снова без суммирования.

Так объявить его вне цикла for, как показано ниже:

public int sqSum(){ 
    int sqSum =0;//declare it outside loop and use the same 

    for(int i=0; i<array.length; i++) 
     sqSum = sqSum + array[i] * array[i]; //add each product to previous sqSum 

    return sqSum; 
} 
1

Если я вас правильно:

public int sqSum() { 
    int sqSum = 0; 
    for(int i=0; i<array.length; i++) 
     sqSum += array[i] * array[i]; 

    return sqSum; 
} 
0

Вы можете использовать Java 8 потоковый API, как int sqSum = Arrays.stream(array).map(i -> i * i).sum().

Смежные вопросы