Заполняем массив

  • 6
  • Недоступна
Реализуй статический метод main(String[]), который заполняет массив array значениями valueStart и valueEnd. Если длина массива четная, его первую половину нужно заполнить значениями valueStart, а вторую — valueEnd. Если длина массива нечётная, то большую часть заполнить значениями valueStart, меньшу
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (59)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Samummm System Engineer
21 октября, 09:58
Решение, которое представлено "Правильным решением" не верно, с учетом "При тестировании значения полей класса Solution будут разными, учти это." и длине массива 1, решение будет не верным. Опять же не понятна работа Arrays.fill, Arrays.fill(имя, первый, последний, значение) здесь "первый, последний" что означают, это ИНДЕКС элемента массива или ПОРЯДКОВЫЙ НОМЕР? опять же есть массив 10 элементоа Arrays.fill(array, 0, 5, valueStart); здесь заполнение допустим от 0 до 5 Arrays.fill(array, 5, array.length, valueEnd); а здесь получается с 5 до конца массива и в чем смысл, получается будет пересечение по 5-му элементу или я что-то не правильно понял? А если "последний", а судя по 0 - это все таки индекс, то array.length выдаст 10, но индекса 10 в массиве на 10 элементов нет и как это понимать?
JaVadim
Уровень 6, Королев, Russian Federation
22 октября, 18:35
Я так понял, что индекс. Массив array [5] имеет 5 ячеек с индексами соответственно 0, 1, 2, 3, 4. Задавая первый диапазон заполнения от 0 до 2, мы заполняем ячейки с индексами 0 и 1, далее, указав второй диапазон от 2 до array.length, мы заполняем ячейки с индексами от 2 до ячейки с индексом, номер которого предшествует значению длины массива, то есть (5-1). Таким образом, и нахлест посередине отсутствует, и на несуществующий индекс ячейки (конечный) не ссылаемся.
Samummm System Engineer
22 октября, 19:57
Спасибо! Разобрался. По правильному "последний" - это порядковый номер, а не индекс, т.к. если написать Arrays.fill(array, 0, 10, valueStart) , будет заполнен весь массив, но 10 - это не индекс.
Misha Alexandrov
Уровень 9, Москва, Russian Federation
16 октября, 16:28
Сначала не понимал, почему не принимают. Понял, что не использовал fill)
Иванов Дмитрий
Уровень 14, Борисоглебск, Russian Federation
24 сентября, 19:12
Не очень сложная задачка по сути. Решил со второго раза, через if-else (НЕ надо выводить результат на экран!) 🙃 После АДА с многомерными массивами - услада для ума😇
Olya
Уровень 8, Odessa, Ukraine
11 сентября, 18:17
задачки легкая) решила с первого раза) через if - else
MiniDaz
Уровень 15, Санкт-Петербург
9 сентября, 17:50
не могу понять почему в иф аррай.ленс/2 , а в елсе аррай.ленс/2+1
Андрей Ефремов
Уровень 14, Ульяновск, Россия
13 сентября, 11:37
Таким образом вычисляется б0льшая часть нечётной длины массива, которая будет заполнена значениями valueStart.
Andrey Chuev
Уровень 14, Москва, Russian Federation
5 сентября, 08:44
Использовать можно только
Arrays.fill(int[], int, int, int).
Иначе даже с работающим кодом валидатор не пропустит решение. Задача простая, решается в 3 строчки, не нужно ничего прибавлять вычитать, используйте вещественные числа и метод
Math.ceil();
VladimirPic
Уровень 14, Краснотурьинск, Россия
9 сентября, 16:28
Дружище, не обязательно, через if-else и дополнительные переменные прекрасно решается, главное, как указали ниже, заполнить большую часть на 1 valueStart больше
Matveybor bor
Уровень 14, Москва, Russian Federation
26 сентября, 10:30
Друг, а не подскажешь как можно реализовать это задание(6 уровень 8 лекция) с помощью метода Math.ceil();
Вячеслав
Уровень 9, Russian Federation
28 сентября, 17:26
Спасибо за пояснение о fill, но с остальным не согласен, вещественные числа только нагромождают код, +1 и деление нацело выглядит проще
Вадим Коновалов Инженер-энергетик
11 октября, 18:51
Когда делишь нечетное целое число на 2, язык Java округляет в меньшую сторону. метод Math.ceil() округляет в большую сторону. То есть два значения равны в таком виде
int [] array = new int [9];
Math.ceil(array.length/2) == (array.length / 2) +1)                 // true
Х
Уровень 7, Санкт-Петербург, Russian Federation
16 октября, 04:06
В Вашем коде получится 4=5. Надо предварительно array.lenght умножить на 1.0 (привести к типу с плав. точкой). иначе при целочисленном делении сначала отбросится дробная часть, а потом уже и округлять нечего. int [] array = new int [9]; (int) Math.ceil(1.0*array.length/2) == (array.length / 2) +1 (int) Math.ceil(array.length/2) != (array.length / 2) +1)
Anonymous #2759400
Уровень 11, Israel
3 сентября, 22:42
не смог решить задачу, посмотрел в ответы , и понял что не читал про проверку условия при инициализации переменной, подскажите пожалуйста где могу узнать об этом поподробней
dimask
Уровень 10, Санкт-Петербург
31 августа, 19:05
Мне вот интересно, проверка требует обязательно использования тернарного оператора , почему это нельзя указать в требованиях ?
Masha Frolova учу java
4 сентября, 19:29
не обязательно, через if - else прошло
Dmitry Berzin
Уровень 10, Великий Новгород, Russian Federation
8 сентября, 15:18
у меня через if -else не прошло -_-
Zusharaf
Уровень 9, Казань, Россия
25 августа, 16:58
Решила с помощью тернарного в три строчки :) Хорошая задача, мне понравилось
KG 312 DZA
Уровень 10, Yakutsk
18 августа, 05:41
В чем проблема не понимаю (( подскажите