Играем в Jолушку

  • 10
  • Недоступна
Игра Jолушка 1.0: распихиваиние чисел по трем спискам. Правила таковы: Jолушка получила список из 20 чисел. Ей нужно проверить, какие из них нацело делятся на 3, какие на 2, а какие — ни на то, ни на другое. Затем ей нужно сохранить их в отдельные списки. Числа, которые делятся на 3 и на 2 одновременно, например 6, попадают в оба списка. Решаем!
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (540)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Максим "Evengarr" Меднов 8 уровень, Москва
21 февраля, 18:29
с новой строки должны выводится все числа, а не только списки
Денис 7 уровень, Днепр
18 февраля, 15:14
не клеялось с последним циклом, где нужно было добавить числа что остались, через elsе не получалось, сделал через else if. Пример: else if (Integer % 2 != 0 && Integer % 3 != 0) array.add(Integer); Может кому поможет)
Приходько Александр 8 уровень, Кызылорда
18 февраля, 05:06
Кто-нибудь скажите что в моем коде не так, что ругается валидатор?
public class Solution {
    public static void main(String[] args) throws Exception {
        //напишите тут ваш код
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList<Integer> three = new ArrayList<>();
        ArrayList<Integer> two = new ArrayList<>();
        ArrayList<Integer> other = new ArrayList<>();
        ArrayList<Integer> main = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            Integer x = Integer.parseInt(reader.readLine());
            main.add(x);
        }
        for (int i = 0; i < main.size(); i++) {
            Integer x = main.get(i);

            if (x % 3 == 0 && x % 2 == 0) {
                three.add(x);
                two.add(x);
            } else {
                if (x % 3 == 0) {
                    three.add(x);
                } else if (x % 2 == 0) {
                    two.add(x);
                } else {
                    other.add(x);
                }
            }
        }

        printList(three);

        printList(two);

        printList(other);

    }

    public static void printList(ArrayList<Integer> list) {
        //напишите тут ваш код
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}
Денис 7 уровень, Днепр
18 февраля, 15:15
Скорее всего задваиваиваются числа которые деляться на 2 без остатка
Maksim 8 уровень, Великий Новгород
20 февраля, 16:17
Ниже уже сталкивались с подобной проблемой:
Georgii 7 уровень, Владивосток
17 февраля, 18:36
Я сначала не понял, но потом как понял))! Неправильно использовал оператор условия, и пришлось создавать еще один список типа ТЕМПЛИСТ куда недосформированный список посылался а затем из него уже по х%3 и х%2 спискам раскидывал. И это работало, но условие не проходило) но потом как понял)))! и там действительно все в одном цикле решается на изиче) И у меня теперь две программы Jолушка и Joлушка 2.0)))
Алексей 7 уровень, Kaluga
11 февраля, 19:06
моей ошибкой было добавление в новые списки значения от %3 и %2, а не сами числа, проходящие эт условия условия. Будьте внимательнее☺️
Михаил 8 уровень, Самара
8 февраля, 07:07
Будьте внимательней с порядком объявления списков (сначала /3, потом /2), а то не пропустит 3 и 4 условия.
Денис 11 уровень
17 февраля, 05:10
Михаил, вы правы...я целый день не мог пройти условия только из-за того, что объявил списки не по порядку 😂
Руслан Тухватуллин QA Automation Engineer в ЛАНИТ
3 февраля, 09:50
что то сложные задачи легче средних)) Или просто условия более понятные)
Alaraf1 11 уровень, Киев
17 января, 18:17
public static void printList(ArrayList<Integer> list) { //напишите тут ваш код for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } вывести три дополнительных списка, используя метод printList. Последнее условия. Может кому-то поможет.
Nikolay Smirnov 15 уровень, Екатеринбург
15 января, 12:32
как понял из комментариев, в основном все решают через 2 цикла - в первом принимают 20 чисел с клавиатуры и наполняют ими главный список, во втором перебирают элементы главного и в зависимости от условий раскидывают по остальным трем имхо, можно всё решить через один цикл - считывать число с клавиатуры, добавлять его в главный, сразу же прогонять принятое число по условиям и сразу распределять в нужный список (в условии запрета на это нет)
16 января, 21:59
О - оптимизация)
Anonymous #2469142 15 уровень, Екатеринбург
2 января, 08:24
реализовал все в методе printList, а в main только ввод данных в основной список валидатор не принимает, после переноса всего из метода printList и оставления там только for'а с выводом списка на экран валидатор схавал решение