Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 6

Составьте программу вычисления произведения нечетных элементов одномерного массива A(M), заполнив его случайным образом

21.11.2018, 07:55. Показов 1353. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составьте программу вычисления произведения нечетных элементов одномерного массива А(M),заполнив его случайным образом.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2018, 07:55
Ответы с готовыми решениями:

Составьте программу вычисления суммы элементов с m1 по m2 одномерного массива A(N), заполнив его рандомно
Здравствуйте, уважаемые программисты! Задание таково: составьте программу вычисления суммы элементов с m1 по m2 (m1 и m2 вводятся с...

Составьте программу вычисления произведения нечетных элементов одномерного массива
Составьте программу вычисления произведения нечетных элементов одномерного массива A(N), заполнив его случайным образом.

Составьте программу вычисления произведения элементов, больших заданного числа Т, одномерного массива
Составьте программу вычисления произведения элементов, больших заданного числа Т, одномерного массива А(N), заполнив его случайным образом

13
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
21.11.2018, 13:04
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static int multiplyOdd(int[] array) 
{
    return Arrays.stream(array)
                   .filter(n -> n % 2 != 0)
                   .reduce((x,y) -> x*y)
                   .orElse(0);
}
 
public static void main(String[] args)
{
    int m = 5;
    int[] array = new int[m];
    Random random = new Random();
 
    for (int i = 0; i < array.length; i++)
    {
        array[i] = random.nextInt(20);
    }
 
    System.out.println(Arrays.toString(array));
    System.out.println(multiplyOdd(array));
}
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
21.11.2018, 14:09
NiceJacket,
Разве это правильно?
"нечетных элементов" а вы проверяете все элементы(индексы) и отсеиваете нечетные значения.
Например {2, 4, 6, 8, 10} у вас пройдет весь массив, хотя вам надо arr[1] = 2, arr[3]= 8,
не то чтобы я циплялся, просто я пока не знаю как это решить.
и не знаю reduce((x,y) -> x*y) что здесь за переметр, там же должно быит 2 или 3 ? "индеферентный операции", какая-то би функция и би оператор для результатов функции (не обязательно но для параллелности надо)
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
21.11.2018, 14:24
Цитата Сообщение от ViktorFX Посмотреть сообщение
NiceJacket,
Разве это правильно?
"нечетных элементов" а вы проверяете все элементы(индексы) и отсеиваете нечетные значения.
Например {2, 4, 6, 8, 10} у вас пройдет весь массив, хотя вам надо arr[1] = 2, arr[3]= 8,
не то чтобы я циплялся, просто я пока не знаю как это решить.
и не знаю reduce((x,y) -> x*y) что здесь за переметр, там же должно быит 2 или 3 ? "индеферентный операции", какая-то би функция и би оператор для результатов функции (не обязательно но для параллелности надо)
Не очень понял вопрос. Я делаю выборку нечётных элементов (элементы, которые не делятся на двойку), а не выборку элементов с нечётным индексом. Так написано в задании же.
reduce - свёртка элементов по заданной функции, то есть, мы получаем результат перемножения элементов
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
21.11.2018, 14:35
Цитата Сообщение от NiceJacket Посмотреть сообщение
Не очень понял вопрос. Я делаю выборку нечётных элементов (элементы, которые не делятся на двойку), а не выборку элементов с нечётным индексом. Так написано в задании же.
reduce - свёртка элементов по заданной функции, то есть, мы получаем результат перемножения элементов
первый элемент, второй элемент.. то есть мне показалось что элементы в данном случае это (извиняюсь за каламбур) именно элементы массива а не значения элементов массива.
Был бы признателен если бы вы подсказали решения именно такой трактовки (мне изначально казалось что так поставлен вопрос и я не знаю как бы я его решил)
С reduce разобрался, спасибо.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
21.11.2018, 14:37
Java
1
2
3
4
5
6
7
8
9
10
11
    public static int multiplyOdd(int[] array) {
        int m = 1;
        boolean hasOdd = false;
        for (int n : array) {
            if (n % 2 == 1) {
                m *= n;
                hasOdd = true;
            }
        }
        return hasOdd ? m : 0;
    }
на стримах выглядит ужасно
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
21.11.2018, 15:15
Мне кажется так.
Java
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args){
        int[] arr = {1, 3, 4, 2, 8, 34, 6, -5, -3, 0, 4, 5};
        int sum = IntStream.range(0,arr.length)
                .filter(x -> x%2 ==1)
                .mapToObj(x -> arr[x])
                .peek(System.out::println)
                .reduce((a,b) -> a+b)
                .get();
        System.out.println("sum = "+sum);
    }
Code
1
2
3
4
5
6
7
3
2
34
-5
0
5
sum = 39
И да, я не заполнил случайным образом((( сосредоточился на другом.
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
21.11.2018, 15:38
x%2 ==1 не пройдет, при x = -3, скажем))

Java
1
2
3
4
public static void main(String[] args) {
        int[] arr = {1, 3, 4, 2, 8, 34, 6, -5, -3, 0, 4, 5};
        System.out.println(Arrays.stream(IntStream.of(arr).filter(x -> x % 2 != 0).toArray()).sum());
    }
0
 Аватар для NiceJacket
109 / 89 / 25
Регистрация: 02.06.2018
Сообщений: 259
21.11.2018, 15:41
Цитата Сообщение от ViktorFX Посмотреть сообщение
Мне кажется так.
Java
1
2
3
4
5
6
7
8
9
10
public static void main(String[] args){
        int[] arr = {1, 3, 4, 2, 8, 34, 6, -5, -3, 0, 4, 5};
        int sum = IntStream.range(0,arr.length)
                .filter(x -> x%2 ==1)
                .mapToObj(x -> arr[x])
                .peek(System.out::println)
                .reduce((a,b) -> a+b)
                .get();
        System.out.println("sum = "+sum);
    }
Code
1
2
3
4
5
6
7
3
2
34
-5
0
5
sum = 39
И да, я не заполнил случайным образом((( сосредоточился на другом.
ну да, идея такая
Java
1
2
3
4
5
int n = IntStream.range(0, array.length)
                .filter(x -> x%2 != 0)
                .mapToObj(x -> array[x])
                .reduce((x,y) -> x*y)
                .get();
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
21.11.2018, 15:51
Цитата Сообщение от Aviz__ Посмотреть сообщение
x%2 ==1 не пройдет, при x = -3, скажем))
почему?
Попробовал .filter(x -> x%2 ==0) Все прошло.
А потом посмотрел так там -5 есть и все проходило.
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
21.11.2018, 18:19
Цитата Сообщение от ViktorFX Посмотреть сообщение
почему?
3 % 2 == - 3 % 2?
1
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
21.11.2018, 18:46
Aviz__, false
До меня дошло логичнее .filter(x -> Math.abs(x%2) == 1) но это ужасно
а вообще правильно .filter(x -> x%2 != 0)

Не по теме:

Видимо сработала внутренняя логика x%2 == 0 - четные, x%2 == 1 - нечетные

)))
0
 Аватар для Aviz__
2748 / 2056 / 508
Регистрация: 17.02.2014
Сообщений: 9,475
21.11.2018, 18:49
Pablito тебя сбил!
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
21.11.2018, 18:50
Цитата Сообщение от Aviz__ Посмотреть сообщение
x%2 ==1 не пройдет, при x = -3, скажем))
Мне повезло что шел я по индексам, а отрицательных индексов нет )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2018, 18:50
Помогаю со студенческими работами здесь

Разработать программу сортировки одномерного массива, состоящего из 20 элементов, которые загадываются случайным образом
Помогите пожалуйста разработать программу сортировки одномерного массива, состоящего из 20 элементов, которые загадываются случайным...

Составьте программу вычисления суммы элементов одномерного массива
Составьте программу вычисления суммы элементов одномерного массива A(N), встречающихся в этом массиве ровно один раз.

Составьте программу вычисления суммы элементов одномерного массива
Составьте программу вычисления суммы элементов одномерного массива А(N), встречающихся в этом массиве ровно один раз. вот мои наброски...

Написать программу вычисления произведения чётных элементов одномерного массива
Здравствуйте! Обращаюсь к Вам за помощью. Нужно написать следующую программу: Буду благодарна за любую помощь!

Составьте программу вычисления суммы, произведения и среднего арифметического элементов массива
Задан массив из N целых чисел. Составьте программу вычисления суммы, произведения и среднего арифметического элементов массива.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru