• ,

package com.javarush.task.task39.task3910 ни в какую не хочет принимать валидатор

Задача примитивнейшая на первый взгляд)Сделал несколькими способами, но принимать не хочет никакой)может я что туплю)

Условие:
isPowerOfThree

Исправь ошибку в методе isPowerOfThree(int n), он должен возвращать true, если n является целочисленной степенью числа 3. Иначе — false.

Вот как дана исходная реализация

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

}

public static boolean isPowerOfThree(int n) {
if (n % 3 == 0) {
return true;
}
return false;
}
}

Вот один из вариантов как я реализовал метод

public static boolean isPowerOfThree(int n) {
if(n>=3){
while (n % 3 == 0) {
n/=3;
if(n==1) return true;
}
}
return false;
}

Не понимаю, что в первоначальной реализации исправить надо, ведь там по сути все переписать надо)Вроде все настолько элементарно, но не принимает, не зря же 39 уровень) Пробовал так же черех for, логарифмы, рекурсию) Один фиг не принимает) Подскажите кто, замучался уже)
  • ,

task06.task0606 не проходит проверку

Чётные и нечётные циферки
Ввести с клавиатуры число. Определить, сколько в введенном числе четных цифр, а сколько нечетных.
Если число делится без остатка на 2 (т. е. остаток равен нулю), значит оно четное.
Увеличиваем на 1 счетчик четных цифр (статическая переменная even).
Иначе число нечетное, увеличиваем счетчик нечетных цифр (статическая переменная odd).
Вывести на экран сообщение: «Even: а Odd: b», где а — количество четных цифр, b — количество нечетных цифр.

Пример для числа 4445:
Even: 3 Odd: 1

Собственно код

public class Solution {

    public static int even;
    public static int odd;

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] arr = (reader.readLine().split(""));
        for (int i = 1; i < arr.length; i++) {
            if ((Integer.parseInt(arr[i]))%2 == 0) even++;
            else odd++;
        }
        System.out.println("Even: " + even + " Odd: " + odd);
        //напишите тут ваш код
    }
  • ,

level10.lesson11.home09

Здравствуйте. У меня на ПК код компилируется и работает. А сервер говорит " Программа не компилируется".

package com.javarush.test.level10.lesson11.home09;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/* Одинаковые слова в списке
Ввести с клавиатуры в список 20 слов. Нужно подсчитать количество одинаковых слов в списке.
Результат нужно представить в виде словаря Map<String, Integer>, где первый параметр – уникальная строка,
а второй – число, сколько раз данная строка встречалась в списке.
Вывести содержимое словаря на экран.
В тестах регистр (большая/маленькая буква) влияет на результат.
*/

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

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

        Map<String, Integer> map = countWords(words);

        for (Map.Entry<String, Integer> pair : map.entrySet())
        {
            System.out.println(pair.getKey() + " " + pair.getValue());
        }
    }

    public static Map<String, Integer> countWords(ArrayList<String> list)
    {
		String tempKey = "";
        HashMap<String, Integer> result = new HashMap<String, Integer>();

        for (int i = 0; i < list.size(); i++) {
		tempKey = list.get(i);	
		if (!result.containsKey(tempKey)) result.put(tempKey,1);
		else result.replace(tempKey, result.get(tempKey)+1); 
			} 		
        return result;
		 
    }

}


Обнаружил, что метод replace класса HashMap появился в Java 8 SE (на ПК стоит такая). На сервере видимо Java SE 7.

Переписал последний метод без replace, результат аналогичный, на ПК компилируется, работает, а на сервер javarush не компилирует, в чем ошибка?
public static Map<String, Integer> countWords(ArrayList<String> list)
    {
		String tempKey = "";
		int tempValue;
        HashMap<String, Integer> result = new HashMap<String, Integer>();

        for (int i = 0; i < list.size(); i++) {
		tempKey = list.get(i);	
		if (!result.containsKey(tempKey)) result.put(tempKey,1);
		else {
			tempValue = result.get(tempKey)+1;
			result.remove(tempKey);
			result.put(tempKey, tempValue);
			} 
		}
        return result;
		 
		
	}
}
  • ,

com.javarush.test.level10.lesson11.home09

Программа работает, но не может пройти тест. Не могу понять что не так.
package com.javarush.test.level10.lesson11.home09;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/* Одинаковые слова в списке
Ввести с клавиатуры в список 20 слов. Нужно подсчитать количество одинаковых слов в списке.
Результат нужно представить в виде словаря Map<String, Integer>, где первый параметр – уникальная строка,
а второй – число, сколько раз данная строка встречалась в списке.
Вывести содержимое словаря на экран.
В тестах регистр (большая/маленькая буква) влияет на результат.
*/

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

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

        Map<String, Integer> map = countWords(words);

        for (Map.Entry<String, Integer> pair : map.entrySet())
        {
            System.out.println(pair.getKey() + " " + pair.getValue());
        }
    }

    public static Map<String, Integer> countWords(ArrayList<String> list)
    {
        HashMap<String, Integer> result = new HashMap<String, Integer>();
        ArrayList<String> lists = new ArrayList<String>();

           for(int i = 0; i < list.size();i++)
        {
            String s = list.get(i).toLowerCase();
            lists.add(s);
        }
            for(int g = 0; g < lists.size(); g++)
            {
                int count = 0;
                for (int i = 0; i < lists.size(); i++)
                {
                    if (lists.get(i).equals(lists.get(g))) count++;
                }
                result.put(lists.get(g),count);

            }

        //напишите тут ваш код


        return result;
    }

}

level06.lesson11.bonus03; не проходит тестирование, хотя все прекрасно работает


public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<Integer> list = new ArrayList<>();
        int max = Integer.parseInt(reader.readLine());
        list.add(max);

        for(int i = 0; i < 4; i++)
        {
            int toAdd = Integer.parseInt(reader.readLine());
            if (toAdd > max)
            {
                list.add(toAdd);
            } else
            {
                list.add(0, toAdd);
            }
        }
        for(int i : list)
        {
            System.out.println(i);
        }
    }
}
  • ,

package com.javarush.test.level18.lesson10.home05;

Работает, но не проходит проверку. Подскажите где ошибся пожалуйста

/* Округление чисел
Считать с консоли 2 имени файла
Первый файл содержит вещественные(дробные) числа, разделенные пробелом. Например, 3.1415
Округлить числа до целых и записать через пробел во второй файл
Закрыть потоки. Не использовать try-with-resources
Принцип округления:
3.49 - 3
3.50 - 4
3.51 - 4
-3.49 - -3
-3.50 - -3
-3.51 - -4
*/

import java.io.*;


public class Solution {
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            try {
                BufferedReader brf = new BufferedReader(new FileReader(br.readLine()));
                BufferedWriter bwf = new BufferedWriter(new FileWriter(br.readLine()));

                String s;
                while ((s = brf.readLine()) != null) {
                    brf.read();
                    String[] tmp = s.split(" ");
                    for (String item : tmp) {
                        long num = Math.round(Double.parseDouble(item));
                        bwf.write(String.valueOf(num)+" ");
                    }
                }
                brf.close();
                bwf.flush();
                bwf.close();
            }
            catch (IOException e) {}
        }
    }

level05.lesson12.bonus03 не проходит тест

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

import java.io.*;

/* Задача по алгоритмам
Написать программу, которая:
1. вводит с консоли число N > 0
2. потом вводит N чисел с консоли
3. выводит на экран максимальное из введенных N чисел.
*/

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

        do
        
             y = Integer.parseInt(reader.readLine());
            while (y <= 0) ;
        
        for (int i = 1; i <= y; i++)
        {
            int k = Integer.parseInt(reader.readLine());
            maximum = max(k,maximum);
            //напишите тут ваш код
        }
            System.out.println(maximum);
    }

    public static int max(int k, int maximus){
       int x = maximus ;
                return (x > k) ? x:k;
    }
  • ,

package com.javarush.test.level09.lesson02.task03 результат как и требовалось а проверку не проходит

Похоже эта задача раньше не обсуждалась.
Результат то что надо, проверял в отладчике, но проверку не проходить.
Кто-нибудь знает что ей надо?

package com.javarush.test.level09.lesson02.task03;

/* Метод должен вернуть номер строки кода, из которого вызвали этот метод
Написать пять методов, которые вызывают друг друга. Метод должен вернуть номер строки кода, из которого вызвали этот метод. Воспользуйся функцией: element.getLineNumber().
*/

public class Solution
{
    static int i = 2;

    public static void main(String[] args) throws Exception
    {
        method1();
    }

    public static int method1()
    {
        method2();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[i].getLineNumber();
    }

    public static int method2()
    {
        method3();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[i].getLineNumber();
    }

    public static int method3()
    {
        method4();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[i].getLineNumber();
    }

    public static int method4()
    {
        method5();
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[i].getLineNumber();
    }

    public static int method5()
    {
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        return  /*add your code here*/ stackTraceElements[i].getLineNumber();
    }
}
  • ,

level18.lesson10.bonus03 - не проходит проверку(Все работает,все протестил)

/* Прайсы 2
CrUD для таблицы внутри файла
Считать с консоли имя файла для операций CrUD
Программа запускается с одним из следующих наборов параметров:
-u id productName price quantity
-d id
Значения параметров:
где id - 8 символов
productName - название товара, 30 chars (60 bytes)
price - цена, 8 символов
quantity - количество, 4 символа
-u  - обновляет данные товара с заданным id
-d  - производит физическое удаление товара с заданным id (все данные, которые относятся к переданному id)

В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
id productName price quantity
Данные дополнены пробелами до их длины

Пример:
19846   Шорты пляжные синие           159.00  12
198478  Шорты пляжные черные с рисунко173.00  17
19847983Куртка для сноубордистов, разм10173.991234
*/

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String filename = reader.readLine();
        Scanner sc = new Scanner(new BufferedReader(new FileReader(filename)));
        ArrayList<String> list = new ArrayList<>();
        reader.close();
        if("-u".equals(args[0])){
            while (sc.hasNext()){
                String temp = sc.nextLine();
                String temp2 = temp.substring(0,8).trim();
                //проверяем на совпадение id с args[1] отсекаем пробелы и сравниваем или если нет пробелов
                if(args[1].equals(temp2)){
                    list.add(temp.substring(0,8) + getProductName(args[2]) + getPrice(args[3]) + getQuantity(args[4]));
                }else list.add(temp);
            }
            sc.close();
            FileWriter filew = new FileWriter(filename);
            for (String l : list){
                filew.write(l);
            }
            filew.close();
        }
        if("-d".equals(args[0])){
            while (sc.hasNext()){
                String temp = sc.nextLine();
                list.add(temp);
            }
            Iterator<String> iter = list.iterator();
            while (iter.hasNext()){
                String temp = iter.next();
                String temp2 = temp.substring(0,8).trim();
                if(args[0].equals(temp2)){
                    iter.remove();
                }
            }
            sc.close();
            FileWriter filew = new FileWriter(filename);
            for (String l : list){
                filew.write(l+"\n");
            }
            filew.close();
        }

    }
    public static String getProductName(String productName){
        if(!(productName.length()>30))
            for(int i=0;i<30;i++)
                productName +=" ";
        return productName.substring(0,30);
    }
    public static String getPrice(String price){
        if(!(price.length()>8))
            for(int i=0;i<8;i++)
                price +=" ";
        return price.substring(0,8);
    }
    public static String getQuantity(String quantity){
        if(!(quantity.length()>4))
            for(int i=0;i<4;i++)
                quantity += " ";
        return quantity.substring(0,4);
    }
}
  • ,

level18.lesson10.bonus03 - не проходит проверку(Все работает,все протестил)

/* Прайсы 2
CrUD для таблицы внутри файла
Считать с консоли имя файла для операций CrUD
Программа запускается с одним из следующих наборов параметров:
-u id productName price quantity
-d id
Значения параметров:
где id - 8 символов
productName - название товара, 30 chars (60 bytes)
price - цена, 8 символов
quantity - количество, 4 символа
-u  - обновляет данные товара с заданным id
-d  - производит физическое удаление товара с заданным id (все данные, которые относятся к переданному id)

В файле данные хранятся в следующей последовательности (без разделяющих пробелов):
id productName price quantity
Данные дополнены пробелами до их длины

Пример:
19846   Шорты пляжные синие           159.00  12
198478  Шорты пляжные черные с рисунко173.00  17
19847983Куртка для сноубордистов, разм10173.991234
*/

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;

public class Solution {
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String filename = reader.readLine();
        Scanner sc = new Scanner(new BufferedReader(new FileReader(filename)));
        ArrayList<String> list = new ArrayList<>();
        reader.close();
        if("-u".equals(args[0])){
            while (sc.hasNext()){
                String temp = sc.nextLine();
                String temp2 = temp.substring(0,8).trim();
                //проверяем на совпадение id с args[1] отсекаем пробелы и сравниваем или если нет пробелов
                if(args[1].equals(temp2)){
                    list.add(temp.substring(0,8) + getProductName(args[2]) + getPrice(args[3]) + getQuantity(args[4]));
                }else list.add(temp);
            }
            sc.close();
            FileWriter filew = new FileWriter(filename);
            for (String l : list){
                filew.write(l);
            }
            filew.close();
        }
        if("-d".equals(args[0])){
            while (sc.hasNext()){
                String temp = sc.nextLine();
                list.add(temp);
            }
            Iterator<String> iter = list.iterator();
            while (iter.hasNext()){
                String temp = iter.next();
                String temp2 = temp.substring(0,8).trim();
                if(args[0].equals(temp2)){
                    iter.remove();
                }
            }
            sc.close();
            FileWriter filew = new FileWriter(filename);
            for (String l : list){
                filew.write(l+"\n");
            }
            filew.close();
        }

    }
    public static String getProductName(String productName){
        if(!(productName.length()>30))
            for(int i=0;i<30;i++)
                productName +=" ";
        return productName.substring(0,30);
    }
    public static String getPrice(String price){
        if(!(price.length()>8))
            for(int i=0;i<8;i++)
                price +=" ";
        return price.substring(0,8);
    }
    public static String getQuantity(String quantity){
        if(!(quantity.length()>4))
            for(int i=0;i<4;i++)
                quantity += " ";
        return quantity.substring(0,4);
    }
}
  • ,

Робята на помощь. Не принимает задачу. Кошачье семейство.

Ребята условие задачи выполнил. Не принимает. Нашел лишние пробелы лишние, возрадовался, удалил, а тест все равно не проходит. Укажите слепцу где я оступился!
  • ,

Все коректно работает,но не проходит!)

Идея такая, когда кидает исключение о том что клас не найден, виводим сообщение и пользуемся рекурсией
package com.javarush.test.level09.lesson11.bonus02;

import java.io.*;

/* Нужно добавить в программу новую функциональность
Задача: Программа вводит два имени файла. И копирует первый файл на место, заданное вторым именем.
Новая задача: Программа вводит два имени файла. И копирует первый файл на место, заданное вторым именем.
Если файла (который нужно копировать) с указанным именем не существует, то
программа должна вывести надпись «Файл не существует.» и еще раз прочитать имя файла с консоли, а уже потом считывать файл для записи.
*/

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


      help();

        }

    private static void help()throws IOException{



        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String sourceFileName = reader.readLine();
        String destinationFileName = reader.readLine();
try {
    FileInputStream fileInputStream = new FileInputStream(sourceFileName);
    FileOutputStream fileOutputStream = new FileOutputStream(destinationFileName);

        while (fileInputStream.available() > 0)
        {
            int data = fileInputStream.read();
            fileOutputStream.write(data);
        }

        fileInputStream.close();
        fileOutputStream.close();
}catch (FileNotFoundException e){
    System.out.println("Файл не существует.");
    help();
}
    }
}