JavaRush
AI Academy
new
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Уже код глаза замылил, подскажите пожалуйста, что не так,...
hidden #2282659
9 уровень
  • 11.05.2020
  • 502просмотров
  • 13комментариев

Уже код глаза замылил, подскажите пожалуйста, что не так, где ошибка?

Вопрос по задаче Три массива
Java Syntax,  7 уровень,  9 лекция
Решен


1. Введи с клавиатуры 20 чисел, сохрани их в список и рассортируй по трём другим спискам:
Число нацело делится на 3 (x%3==0), нацело делится на 2 (x%2==0) и все остальные.
Числа, которые делятся на 3 и на 2 одновременно, например 6, попадают в оба списка.
Порядок объявления списков очень важен.
2. Метод printList должен выводить на экран все элементы списка с новой строки.
3. Используя метод printList выведи эти три списка на экран. Сначала тот, который для x%3, потом тот, который для x%2, потом последний.

Требования:
  • Объяви и сразу проинициализируй 4 переменных типа ArrayList<Integer> (список целых чисел). Первый список будет главным, а остальные - дополнительными.
  • Считать 20 чисел с клавиатуры и добавить их в главный список.
  • Добавить в первый дополнительный список все числа из главного, которые нацело делятся на 3.
  • Добавить во второй дополнительный список все числа из главного, которые нацело делятся на 2.
  • Добавить в третий дополнительный список все остальные числа из главного.
  • Метод printList должен выводить на экран все элементы переданного списка, каждый с новой строки.
  • Программа должна вывести три дополнительных списка, используя метод printList.
....
package com.javarush.task.task07.task0713; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; /* Играем в Jолушку */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<Integer> list = new ArrayList<Integer>(); ArrayList<Integer> three = new ArrayList<Integer>(); ArrayList<Integer> two = new ArrayList<Integer>(); ArrayList<Integer> other = new ArrayList<Integer>(); for(int i = 0; i < 20; i++){ String s = reader.readLine(); list.add(Integer.parseInt(s)); } for(int i = 0; i < list.size(); i++){ if(list.get(i) % 3 == 0 && list.get(i) % 2 == 0){ three.add(list.get(i)); two.add(list.get(i)); } else if(list.get(i) % 3 == 0) three.add(list.get(i)); else if(list.get(i) % 2 == 0) two.add(list.get(i)); else other.add(list.get(i)); } printList(three); printList(two); printList(other);//напишите тут ваш код } public static void printList(ArrayList<Integer> list) { System.out.println(list);//напишите тут ваш код } }
0
Комментарии (13)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Григорий Соколов
Уровень 40
11 мая 2020, 19:21
каждый элемент списка с новой строки
0
hidden #2282659
Уровень 9
11 мая 2020, 19:19
public static void printList(ArrayList<Integer> list) {
        System.out.println(list);//напишите тут ваш код
    }
}
Предполагаю, что проблема здесь, но не могу разобраться..
0
Гофф
Уровень 3
Master
11 мая 2020, 19:22
Именно здесь, как минимум одна
0
Гофф
Уровень 3
Master
11 мая 2020, 19:27
Вот чёрт, сейчас пришло в голову изящное решение, лучше, чем когда я решал задачу. Почему сейчас, а не тогда?
0
hidden #2282659
Уровень 9
11 мая 2020, 19:29
Возможно, я на это надеюсь, у меня тоже так будет, когда я буду на вашем уровне)
0
Гофф
Уровень 3
Master
11 мая 2020, 19:33
Когда решишь, могу скинуть идею в личку. Идея простая, как газета "Гудок". 5 строчек. А пока правда, посмотри на метод вывода - он не соответствует требованиям. Подскажу - там цикл нужен.
0
Гофф
Уровень 3
Master
11 мая 2020, 19:36
Кроме вывода ещё вижу ошибку, когда с выводом справишься, намекну где
0
hidden #2282659
Уровень 9
11 мая 2020, 19:41
for (Integer x : list){
System.out.println(x);
}
Вот такой цикл с лекции вывел и все прошло. Спасибо за помощь. Хотелось бы про ошибку вторую узнать...
0
Гофф
Уровень 3
Master
11 мая 2020, 19:44
Любой елсе относится толь ко к последнему ифу. У тебя if(list.get(i) % 2 == 0) проверится ТОЛЬКО если не выполнится if(list.get(i) % 3 == 0)
0
Гофф
Уровень 3
Master
11 мая 2020, 19:48
А, стоп, это не ошибка. ТАм же ты выше проверяешь, если они на оба делятся
0
Гофф
Уровень 3
Master
11 мая 2020, 19:50
Проверь, пройдёт этот твой вариант? Мне трудно в уме представить, сложная комбинация условий. Не понимаю, как самый последний елсе как себя поведёт.
0
hidden #2282659
Уровень 9
11 мая 2020, 19:52
Попробую. В любом случае спасибо за помощь.👍
0
Гофф
Уровень 3
Master
11 мая 2020, 20:02
Уже прогнал у себя, да, вроде норм выводит
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush