Кто - нибудь может дать ссылку на статью где обьясняется данный метод, а то у меня даже загуглить не получается((?
Igor Esikov
16 уровень
Помогите разобраться
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
АлександрExpert
15 июля 2019, 10:21
Предложу немного другой способ. Сложнее, мудренее, но так тоже можно.
Берешь класс обертку (Integer) методом toString переводишь в строку. Методом charAt берешь символы по 1 ([0], [1], [2]) отнимаешь от каждого 48 и складываешь.
0
Vladimir Prodan
15 июля 2019, 12:11
Объясните пожалуйста почему нужно отнимать именно 48?
0
АлександрExpert
16 июля 2019, 09:36решение
48 - это код символа '0' по таблице ASCII. Все символы это по сути своей числа - коды этих самых символов. С ними можно проводить теже самые операции что и с числами. Например
будет печатать алфавит и инкремент - alphabet++ будет корректно работать.
Другой пример - если нужно написать функцию которая переводит буквы английского алфавита в верхний регистр (есть стандартная функция, но полезно знать как она реализуется).
В данном случае символы заглавных букв стоят на 32 символа раньше своих прописных символов.
+2
АлександрExpert
16 июля 2019, 09:39
Так же по этому принципу работают например функции сравнения строк. Берется символ под одним и тем же индексом из каждой строки и вычитаются друг из друга - если результат равен нулю, то символы равны, если нет, то не равны и дальше можно не смотреть.
0
Vladimir Prodan
22 июля 2019, 10:53
спасибо большое за настолько подробный ответ!
0
hidden #2111695
15 июля 2019, 10:08
Наше число - num. Оно всегда трехзначное, состоит из цифр a,b,c.
int a = num / 100. Получили первое число - количество сотен.
int b = num-a*100. Осталось двухзначное число. b = b/10. Получили второе число, количество десятков.
int c = num - a*100 - b*10. Осталось количество единиц.
Остается найти сумму.
+1
Сергей
15 июля 2019, 09:59
этот метод тебе самому нужно написать
0