• ,

level07.lesson09.task01

Помогите! Программа работает, но не проходит проверку.

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

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer>array=new ArrayList<Integer>();
        ArrayList<Integer>list1=new ArrayList<Integer>();
        ArrayList<Integer>list2=new ArrayList<Integer>();
        ArrayList<Integer>list3=new ArrayList<Integer>();
        int c=20;
        for(int i=0;i<c;i++){
            int k=Integer.parseInt(reader.readLine());
            array.add(k);
        }

        for(int i=0;i<array.size();i++){
            int k=(array.get(i));
            if (k%3==0)
            {
                list1.add(k);
            }

            if (k%2==0)
            {
                list2.add(k);
            }

            if ((k%2!=0)&(k%3!=0)) list3.add(k);
        }

        printList(list1);
        printList(list2);
        printList(list3);
    }

    public static void printList(List<Integer> list) {
        for (int i : list)
        {
            System.out.println(i);
        }

    }
}
  • ,

com.javarush.test.level10.lesson11.bonus02

Всем, привет. подскажите, плз, где баг, недосмотр. Работает… вроде как правильно… правда выводит в другой последовательности, не в такой как в примере, но это жеж Hashmap и на последовательность пофиг…

Можно ли использовать такой код для решения?

Не знаю можно дополнять код функционалом не пройденным в курсе?

Решил задачу через try catch, думаю пройдет ли проверка с первого раза?

package com.javarush.test.level05.lesson12.home05;

/* Вводить с клавиатуры числа и считать их сумму
Вводить с клавиатуры числа и считать их сумму, пока пользователь не введёт слово «сумма». Вывести на экран полученную сумму.
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader read = new BufferedReader(new InputStreamReader(System.in));
        int sum = 0;
        int k = 0;
        String text=null;
        boolean exit= false;
        while (!exit)
        {
            if ((text=read.readLine()).equals("сумма") )
                exit = true;
            else
            {
                try
                {
                    k = Integer.parseInt(text);
                }
                catch (NumberFormatException e)
                {
                    k=0;
                }

                //summing!
                sum = sum+k;
            }
        }
        System.out.println(sum);
    }
}
  • ,

level15.lesson09.task01

Почему-то не могу создать тему в блоге Обсуждение Задач, хоть и подписана на него.

А по теме — никак не пойму, почему для инициализации переменной 5-ю различными парами, нужно писать 6 пар… Что я пропустила?

Условие:
package com.javarush.test.level15.lesson09.task01;

import java.util.HashMap;
import java.util.Map;

/* Статики 1
В статическом блоке инициализировать labels 5 различными парами.
*/

public class Solution {
    public static Map<Double, String> labels = new HashMap<Double, String>();

    public static void main(String[] args) {
        System.out.println(labels);
    }
}
  • ,

level07.lesson09.task05

Здравствуйте.

Почитал обсуждение этой задачи в других топиках и понял, что не разобрался в условиях.
Однако…
В коде ниже происходит какая-то магия мне непонятная. Если кто сможет объяснить — буду благодарен.

Первоначально я решил, что слова должны удваиваться по типу: «пара -> ппаарраа».

«Наваял» этот код:

/* Удвой слова
1. Введи с клавиатуры 10 слов в список строк.
2. Метод doubleValues должен удваивать слова по принципу a,b,c -> a,a,b,b,c,c.
3. Используя цикл for выведи результат на экран, каждое значение с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        ArrayList <String> list = new ArrayList<String>();
        for (int i = 0; i < 10; i++){
            list.add(reader.readLine());
        }

       ArrayList<String> result = doubleValues(list);

        for (String item : result){
            System.out.println(item);
        }
    }

    public static ArrayList<String> doubleValues(ArrayList<String> list) {
        String temp = "";
        for (int i = 0; i < list.size()-1; i++){                    // проходим по массиву
            for (int j = 0; j < list.get(i).length(); j++){            // удваиваем каждый символ
                temp += list.get(i).charAt(j);
                temp += list.get(i).charAt(j);
                list.set(i, temp);                    // заменяем элемент
            }
            temp = "";                                // обнуляем временную переменную
        }
        return list;
    }
}


Магия: начинаю вводить слова с клавиатуры и после 10 введенных слов консоль продолжает ждать ввода данных вместо того, чтобы выдавать результат (хоть какой-нибудь).

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

Еще раз спасибо, если кто объяснит.

level07.lesson09.task01

Помогите пожалуйста, запускается, работает, через дебаг проверял=вроде все в порядке. Сервер не пропускает, «не прошла тестирование». Что тут не так, подскажите?

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.Buffer;
import java.util.ArrayList;
import java.util.List;

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

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> base = new ArrayList<Integer>();
        for (int i = 0; i < 20; i++)
        {
            base.add(Integer.parseInt(reader.readLine()));
        }
        
        ArrayList<Integer> dividedByThree = new ArrayList<Integer>();
        ArrayList<Integer> dividedByTwo = new ArrayList<Integer>();
        ArrayList<Integer> others = new ArrayList<Integer>();

        for (int i = 0; i < base.size(); i++)
        {
            int a = base.get(i);
            if ((a % 3 == 0) & (a % 2 == 0))
            {
                dividedByThree.add(a);
                dividedByTwo.add(a);
            }
            else if (a % 3 == 0)
                dividedByThree.add(a);
            else if (a % 2 == 0)
                dividedByTwo.add(a);
            else
                others.add(a);
        }

        printList(dividedByThree);
        printList(dividedByTwo);
        printList(others);
    }

    public static void printList(List<Integer> list) {
        System.out.println(list);

    }
}

level06.lesson11.bonus02

Помогите пожалуйста, что тут не так?
Либо спать хочу, либо совсем дурак. Эпидерсия какая то.
«Программа не прошла тестирование» и всё тут!
/* Нужно добавить в программу новую функциональность
Задача: У каждой кошки есть имя и кошка-мама. Создать класс, который бы описывал данную ситуацию. Создать два объекта: кошку-дочь и кошку-маму. Вывести их на экран.
Новая задача: У каждой кошки есть имя, кошка-папа и кошка-мама. Изменить класс Cat так, чтобы он мог описать данную ситуацию.
Создать 6 объектов: маму, папу, сына, дочь, бабушку(мамина мама) и дедушку(папин папа).
Вывести их всех на экран в порядке: дедушка, бабушка, папа, мама, сын, дочь.

Пример ввода:
дедушка Вася
бабушка Мурка
папа Котофей
мама Василиса
сын Мурчик
дочь Пушинка

Пример вывода:
Cat name is дедушка Вася, no mother, no father
Cat name is бабушка Мурка, no mother, no father
Cat name is папа Котофей, no mother, father is дедушка Вася
Cat name is мама Василиса, mother is бабушка Мурка, no father
Cat name is сын Мурчик, mother is мама Василиса, father is папа Котофей
Cat name is дочь Пушинка, mother is мама Василиса, father is папа Котофей
*/

public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        String grandpaName = reader.readLine();
        Cat catGrandpa = new Cat(grandpaName);

        String grannyName = reader.readLine();
        Cat catGranny =  new Cat(grannyName);

        String daddyName = reader.readLine();
        Cat catDaddy = new Cat(daddyName, null, catGrandpa);

        String motherName = reader.readLine();
        Cat catMother = new Cat(motherName, catGranny, null);

        String sonName = reader.readLine();
        Cat catSon = new Cat(sonName, catMother, catDaddy);

        String daughterName = reader.readLine();
        Cat catDaughter = new Cat(daughterName, catMother, catDaddy);

        System.out.println(catGrandpa);
        System.out.println(catGranny);
        System.out.println(catDaddy);
        System.out.println(catMother);
        System.out.println(catSon);
        System.out.println(catDaughter);
    }

    public static class Cat
    {
        private String name;
        private Cat parentFemale;
        private Cat parentMale;


        Cat(String name)
        {
            this.name = name;
        }


        Cat(String name, Cat parentFemale, Cat parentMale)
        {
            this.name = name;
            this.parentFemale = parentFemale;
            this.parentMale = parentMale;
        }

       @Override
        public String toString()
        {
            if ((parentFemale == null) && (parentMale == null))
                return "Cat name is " + name + ", no mother, no father";
            else if (parentMale == null)
                return "Cat name is " + name + ", mother is " + parentFemale.name + ", no father";
            else if (parentFemale == null)
                return "Cat name is " + name + ", no mother, father is " + parentMale.name;
            else
                return "Cat name is " + name + ", mother is " + parentFemale.name + ", father is " + parentMale.name;
        }

    }

}


Результат из консоли:

Дедушка
Бабушка
Батя
Мама
Сына
Доча
Cat name is Дедушка, no mother, no father
Cat name is Бабушка, no mother, no father
Cat name is Батя, no mother, father is Дедушка
Cat name is Мама, mother is Бабушка, no father
Cat name is Сына, mother is Мама, father is Батя
Cat name is Доча, mother is Мама, father is Батя

Process finished with exit code 0

Обсуждение задачи level19.lesson08.task04.

Народ подскажите причину, по которой не проходит проверку ниже указанный код:
package com.javarush.test.level19.lesson08.task04;

/* Решаем пример
В методе main подмените объект System.out написанной вами ридер-оберткой по аналогии с лекцией
Ваша ридер-обертка должна выводить на консоль решенный пример
Вызовите готовый метод printSomething(), воспользуйтесь testString
Верните переменной System.out первоначальный поток

Возможные операции: + - *
Шаблон входных данных и вывода: a [знак] b = c
Отрицательных и дробных чисел, унарных операторов - нет.

Пример вывода:
3 + 6 = 9
*/

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;

public class Solution {
    public static TestString testString = new TestString();

    public static void main(String[] args) throws IOException, ScriptException {
        PrintStream consolStream = System.out;

        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        PrintStream stream = new PrintStream(outputStream);
        System.setOut(stream);

        testString.printSomething();

        String result2 = outputStream.toString();
        System.setOut(consolStream);


       ScriptEngineManager manager = new ScriptEngineManager();
       ScriptEngine engine = manager.getEngineByName("js");
       Object result = engine.eval(result2.replace("=",""));

        System.out.println(result2.replaceAll("(\\r|\\n)", ""));
        System.out.println(result);


        outputStream.close();
        stream.close();
    }

    public static class TestString {
        public void printSomething() {
            System.out.println("3 + 6 = ");
        }
    }
}


код считает нормально. После прочтения комментариев сделал вывод в две строки. Не помогло. Возможно из-за использования скрипта?

Всем спасибо! Решил через if.

level07.lesson04.task04 - работает но не верно!

package com.javarush.test.level07.lesson04.task04;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/* Массив из чисел в обратном порядке
1. Создать массив на 10 чисел.
2. Ввести с клавиатуры 10 чисел и записать их в массив.
3. Расположить элементы массива в обратном порядке.
4. Вывести результат на экран, каждое значение выводить с новой строки.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        //Напишите тут ваш код
        int[] list = new int[10];
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        for (int i=0;i<list.length;i++){
            list[i]=Integer.parseInt(reader.readLine());


        }
        int x=9;
          for (int y=0;y<list.length;y++){
              list[x]=list[y];
             System.out.println(list[x]);
              x--;

          }

    }
}

результат 1234554321 — почему?

Почему он не присваивает значение дальше как запланировано.
  • ,

level12.lesson04.task04


/* Три метода возвращают минимальное из двух переданных в него чисел
Написать public static методы: int min(int, int), long min(long, long), double min(double, double).
Каждый метод должен возвращать минимальное из двух переданных в него чисел.
*/

public class Solution
{
    public static void main(String[] args)
    {
/*        System.out.println(min(6,5));
        System.out.println(min(6L,5L));
        System.out.println(min(0.6,0.5));
*/
    }

    public static int min(int n1, int n2) {
        return n1 < n2 ? n1 : n2;
    }

    public static long min(long n1, long n2) {
        return n1 < n2 ? n1 : n2;
    }

    public static double min(double n1, double n2) {
        return n1 < n2 ? n1 : n2;
    }
}


Все функции в main отрабатывают правильно, но тест не проходит. Хотя в задании не указано, что что-то надо выводить.
Что я делаю не так?

Три метода возвращают максимальное из двух переданных в него чисел

что не так, почему не проходит тестирование
<code>package com.javarush.test.level12.lesson04.task05;

/* Три метода возвращают максимальное из двух переданных в него чисел
Написать public static методы: int max(int, int), long max (long, long), double max (double, double).
Каждый метод должен возвращать максимальное из двух переданных в него чисел.
*/

public class Solution
{
    public static void main(String[] args)
    {

    }
    public static int max(int a, int b)
    {
        return (a > b) ? a : b;
    }

    public static long max(long a, long b)
    {
        return (a > b) ? a : b;
    }

    public static double max(double a, double b)
    {
        return (a > b) ? a : b;
    }
    //Напишите тут ваши методы
}
  • ,

Новый сайт для вопросов и ответов

Уважаемые джаварашовцы!

Представляем вашему вниманию наше новое сообщество Q&A, где вы сможете задавать любые вопросы (в том числе по задачам), и получать на них ответы.
Сообщество пока работает в тестовом режиме (не все туда приглашены, а только пользователи info.javarush).
Регистрируйтесь, задавайте свои вопросы по задачам (и не только).
Регистрация пока доступна по email (с проверкой).
На info блог «Обсуждение задач» временно переводится в режим read only.
Все переводы, статьи или новости, обсуждение лекций или других вопросов, вы сможете по прежнему видеть на info.javarush.ru

По поводу дизайна q&a сайта: пока он в тестовом режиме, и вопрос дизайна не рассматривается (но не исключается, что дизайн в ближайшее время будет изменен)

UPD: не смотря на 10 уведомлений об этом сообщении, большинство продолжают дальше постить свои вопросы где придется(в темах о лекции, в личных блогах и тд), хотя я и закрыл возможность создавать новые топики или комменты непосредственно в топиках блога по обсуждению задач. Из-за особо особо внимательных персон я вынужден буду заблокировать временно возможность какой либо активности на этом сайте.