Найти и вернуть сумму всех чисел, которые находятся в массиве после значения startValue
Дан массив чисел values и значение startValue. В этом задании нужно найти и вернуть сумму всех чисел, которые находятся в массиве после значения startValue.
public class SumAfterNumber {
public static int getSum(int[] values, int startValue) {
int result = 0;
int startIndex = 0;
for(int elem : values) {
if(elem != startValue) {
result = 0;
} else if(values.length == 0 && startValue == elem) {
result = 0;
} //else if(startValue == elem && values.length != 0) {
// result += elem;
// }
}
for(int i = 0; i < values.length; i++) {
if(startValue == values[i] && values.length != 0) {
startIndex = values[i+1];
}
}
return result;
}
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
- Ищете индекс числа, равного заданному -- при этом пропускаются все числа (можно использовать цикл
while). - Начиная от следующего индекса, считаете сумму.
Реализация с использованием Stream API выглядит так:
public static int getSum(int startValue, int ... values) {
return IntStream.of(values)
.dropWhile(x -> x != startValue) // пропустить все числа с начала массива по условию
.skip(1) // взять следующий элемент после равного заданному
.sum(); // вычислить сумму оставшихся элементов
}