Создать программу.
Определить
1) Сумму элементов массива с нечетными номерами;
2) Произведение элементов массива, расположенных между первым и последним отрицательными элементами.
Java
Если нужно оперировать не целыми числами, а с плавающей точкой, то объявляем параметр как
А reduce пишем так:
Если нужен long, то используем в этих местах long, а 0 и 1 в reduce пишутся как 0L и 1L (и Long::sum, соответственно).
А остальной код не изменяется.
И это работает, начиная с Java 8.
Нужен код на Java
int oddSum(int[] array) {
return IntStream.range(0, array.length) // последовательность всех индексов массива
.filter(i -> i % 2 != 0) // оставляем только нечётные номера
.mapToObj(i -> array[i]) // берём нечётные элементы массива
.reduce(0, Integer::sum); // свёртываем в сумму
}
Если нечётных элементов в массиве нет (длина 0 или 1), то на выходе будет 0. int multBetweenNegative(int[i] array) {
final int firstNegIndex = IntStream.range(0, array.length)
.filter(i -> array[i] < 0) // оставляем индексы только отрицательных элементов
.findFirst() // находим первый
.orElse(array.length); // если отрицательных элементов нет, то берём длину массива (тогда далее диапазон будет пустой)
final int lastNegIndex = IntStream.range(0, array.length)
.map(i -> array.length - i - 1) // пускаем индексы в обратном порядке
.filter(i -> array[i] < 0) // оставляем индексы только отрицательных элементов
.findFirst() // находим последний
.map(i -> array.length - i - 1) // возвращаем исходное значение индекса
.orElse(-1); // если отрицательных элементов нет, то берём как последний индекс -1 (тогда далее диапазон будет пустой)
return IntStream.rangeClosed(firstNegIndex + 1, lastNegIndex - 1) // между найденными индексами, не включая их
.mapToObj(i -> array[i]) // берём сами элементы массива
.reduce(1, (v, w) -> v * w); // вычисляем произведение
}
Если отрицательных элементов нет, или такой только один, то произведение будет 1.Если нужно оперировать не целыми числами, а с плавающей точкой, то объявляем параметр как
double[] array
И возвращаем также double.А reduce пишем так:
.reduce(0.0, Double::sum);
.reduce(1.0, (v, w) -> v * w);
Если нужен long, то используем в этих местах long, а 0 и 1 в reduce пишутся как 0L и 1L (и Long::sum, соответственно).
А остальной код не изменяется.
И это работает, начиная с Java 8.
как заполняется массив?
вручную вводится?
тупо в код вбивается?
генерируется случайно или по какому-то алгоритму?
считывается из файла?
вручную вводится?
тупо в код вбивается?
генерируется случайно или по какому-то алгоритму?
считывается из файла?
Алексей Картавый
Генерирует в диапазоне [-100; 100]
Так пиши код Java. Зачем ты своё задание написал?
Похожие вопросы
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не запускается код на Java.
- Код на java.
- Написание кода на Java
- Подскажите пожалуйста, как в данном коде Java сделать так, чтоб при нажатии цифры 3 программа завершала свою работу?
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Прошу помощи код Java
- Как для андроид, в java коде, имитировать нажатие кнопки
- Простейший код java вопрос
- Как можно запустить строчку java кода которая хранится в txt файле?