public static int sumDigitsInNumber(int number) {
String b = String.valueOf(number);
char q = b.charAt(0);
char w = b.charAt(1);
char e = b.charAt(2);
int q1 = Character.getNumericValue(q);
int w1 = Character.getNumericValue(w);
int e1 = Character.getNumericValue(e);
return (q1+w1+e1);
}
}
Ilya
4 уровень
Что думаете по этому коду? Как его можно оптимизировать?
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
iKirill
28 апреля 2020, 03:03
Для вычисления остатка (или деление по модулю) используется %.
например, 546 % 10 = даст в остатке 6.
теперь сомтрим код:
когда вернулись в начало цикла, то происъодит проверка 56 больше нуля? да.
счиатем по фонрмуле сумму 6 + 54 % 10 => 6 + 4 = 10
отбрасываем еще одну цифру и получаем 5
возарщаемся вначало цикла. проводим проверку 5 > 0 ? да.
счиатем по фонрмуле сумму 10 + 5 % 10 => 10 + 5 = 15
отбрасываем еще одну цифру (пятерку) и получаем ноль цифр.
возарщаемся в начало цикла. 0 больше 0 ? нет. они равны. значит выходим из цикла и возращем значение суммы = sum
0
РусланFull Stack Developer в novacom
13 марта 2020, 13:14
зачем?
0
Ilya
16 марта 2020, 09:22
Интересно узнать более короткое написание данного кода.
0
РусланFull Stack Developer в novacom
16 марта 2020, 10:26полезный
- возвращает символ, стоящий на определенном индексе. Напомним, индексы начинаются с 0.
- возвращает числовое значение символа в виде неотрицательного значения int. Этот метод вернет -2, если символ имеет числовое значение, но значение не может быть представлено как неотрицательное значение типа int. Метод вернет -1, если у символа нет числового значения.
по твоему коду вот как можно делать но смысла я не вижу в этом)
если тебе просто числа посчитать первые три то принимай это как число и делением на 10 получай числа
+2
РусланFull Stack Developer в novacom
16 марта 2020, 10:35
скинь задание посмотри что там)
0