Не проходит проверку задание по добавлению чисел делящихся нацело на 2 и на 3 (пункты условия 3 и 4), при том, что вывод показывает адекватный результат, просьба помочь в решении данного вопроса.
На кусок требования с выводом можно не обращать внимание, он в таком виде исключительно для удобства контроля результата.
Например при вводе 1-20:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
3 6 9 12 15 18
2 4 6 8 10 12 14 16 18 20
1 5 7 11 13 17 19
leika
8 уровень
Числа которые делятся на 2 и на 3
Архивный
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Pryshchepa Java Developer Expert
2 мая 2018, 07:16
В этой задаче важен порядок списков.
0
Сергеев ВикторMaster
1 мая 2018, 18:26
Используйте фигурные скобки для обозначения области действия
Зачем вам тут второе условие?
if ((list.get(i)%3==0) || ((list.get(i)%3==0)&&(list.get(i)%2==0)))
Если число не делится на 3, оно точно не делится на 3 и 2.
Но выполняя какой пункт задания вы изменили метод printList?
0
leika
1 мая 2018, 19:36
Виктор, спасибо, доп условия действительно не несли глубокой смысловой нагрузки, как показала проверка, но их корректировка так же не привела к желаемому результату:
for (int i=0; i<list.size();i++){
if ((list.get(i)%3==0))
list_3.add(list.get(i));
if ((list.get(i)%2==0))
list_2.add(list.get(i));
if ((list.get(i)%2!=0) && (list.get(i)%3!=0))
list_oth.add(list.get(i));
}
Выполнение программы все так же не засчитывается, результаты для диапазонов 1-10, 1-20, 1-30 прежние и соответствуют условию.
Фигурные скобки использую при количестве команд в операторе >1, что вроде как допускается синтаксисом и визуально не нагружает код.
Метод PrintList был изменен для упрощения отображения выводимой информации, его скорректирать вопрос 2 минут и проблемы с ним не стоит.
Просьба уточнить, что по Вашему мнению еще может влиять на не приятие результата по данной задаче.
0
Сергеев ВикторMaster
1 мая 2018, 19:39
фигурные скобки на первых порах лучше использовать всегда, а то привыкните писать без них, будет много неприятных багов + на работе придется переучиваться писать с ними (возможно).
Проблема в методе printList верните его как был.
0
leika
1 мая 2018, 19:44
Про скобки согласен, спасибо, по вопросу метода, код ниже засчитывается полностью по всем пунктам, кроме пунктов 3 и 4 с добавлением чисел (%2 и %3) по спискам.
printList(list);
// System.out.println(" ");
printList(list_3);
// System.out.println(" ");
printList(list_2);
// System.out.println(" ");
printList(list_oth);
}
public static void printList(List<Integer> list) {
for (int i=0; i<list.size();i++)
System.out.println(list.get(i));
// System.out.print(list.get(i) + " ");
}
}
0
Сергеев ВикторMaster
1 мая 2018, 19:46
3. Используя метод printList выведи эти три списка на экран. Сначала тот, который для x%3, потом тот, который для x%2, потом последний.
0
leika
1 мая 2018, 19:52
Скрыл оригинал, оставив для вывода через метод только 3 доп списка, результат прежний:
// printList(list);
// System.out.println(" ");
printList(list_3);
// System.out.println(" ");
printList(list_2);
// System.out.println(" ");
printList(list_oth);
![]()
![](https://cdn.javarush.com/images/comment/95aed052-f750-4e0b-8b32-80b063ce198c/64.jpeg)
0
artemon
2 мая 2018, 04:58решение
На мой взляд, всё дело в порядке добавления, а не в порядке вывода. Написано: добавить в первый доп список то, что делится на 3, во второй - на 2 и в третий остальное. А у Вас, получается, в первом доп списке на 2, а во втором - на 3.
+3
leika
2 мая 2018, 11:01
бинго, буду внимательнее, спасибо, так и оказалось, просто поменял в условии список_2 и список_3 местами.
+1