if (decimalNumber <= 0)
{ return ""; }
String binary = "";
while (decimalNumber > 0) {
binary = decimalNumber % 2 + binary;
decimalNumber = decimalNumber / 2; }
return binary; }
public static int toDecimal(String binaryNumber) {
//напишите тут ваш код
int decimal = 0;
if(binaryNumber == null){
return decimal;
}
for (int i = 0; i < binaryNumber.length(); i++) {
decimal = (int) ((Character.getNumericValue(binaryNumber.charAt(i- 1))) * Math.pow(2,i)) + decimal; }
return decimal;
}
}
саша
14 уровень
Подскажите почему не проходит? Хотя на компе я проверяю и все правильно
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
саша
11 мая 2023, 18:44
спасибр, все понял
0
Kergshi
11 мая 2023, 09:50
Что значит правильно? В смысле работает? Согласно условию задачи, в toDecimal в из двоичного представления сначала берется крайнее правое,а потом,с каждым витком цикла следующее ближнее от него к началу. Т.е в этом методе нужно создать переменную,а которую будет сохраняться индекс числа,которое будет браться из двоичного представления,а потом еще одну переменную,в которую будет сохранятся этот символ типа char в число типа int. И только потом будет расчет происходить с использованием этой переменной,к которой будет число,взятое из двоичного представления, именно типа int
for (int i = 0; i <binaryNumber.length(); i++) {
int index=binaryNumber.length()-1-i;
int value= Character.getNumericValue(binaryNumber.charAt(index));
decimalNumdber+=value*Math.pow(2,i);
И return,если что,вне цикла выполняется,потому что у тебя int decimal вне цикла и туда итоговый расчет сохранится,который и нужно возвращать.
0
Lexman (Алексей)Full Stack Developer в TrendSoft
10 мая 2023, 18:35
прикрепить полный код
0