Нужно чтобы метод toBinary() был реализован согласно условию
return ""
заменил на return result;
предварительно присвоив result значение ""
= [подсмотрел из правильного решения, больше ничего там не читал] не помогло.
А какое там ещё условие?
Проверка на меньше или равно 0 есть. При decimalNumber = 0 возвращает пустую строку.
В соседних решениях тоже не заморачиваются, так и передают в return без переменных, и у них все норм. Значит дело не в этом всё-таки?
А в чём ещё может быть?
Остальные проверки зелёные.
package com.javarush.task.pro.task09.task0906;
import java.util.regex.Pattern;
/*
Двоичный конвертер
*/
public class Solution {
public static void main(String[] args) {
int decimalNumber = Integer.MAX_VALUE;
System.out.println("Десятичное число " + decimalNumber + " равно двоичному числу " + toBinary(decimalNumber));
String binaryNumber = "1111111111111111111111111111111";
System.out.println("Двоичное число " + binaryNumber + " равно десятичному числу " + toDecimal(binaryNumber));
}
public static String toBinary(int decimalNumber) {
String result = "";
if (decimalNumber <= 0) return result;
int a = decimalNumber;
while (a != 0) {
result += a%2;
a /= 2;
}
return result;
}
public static int toDecimal(String binaryNumber) {
if (binaryNumber == null || binaryNumber.equals("")) return 0;
String a = binaryNumber;
int result = 0;
for (int i = 0; i < a.length(); i++) {
String b = "" + a.charAt(a.length()-1-i);
int c = Integer.valueOf(b);
result += c * Math.pow(2, i);
}
return result;
}
}