public class Solution {
public static void main(String[] args) {
System.out.println(sumDigitsInNumber(546));
}
public static int sumDigitsInNumber(int number) {
String str = Integer.toString(number); // или вместо Integer.toString пишим String.valueOf
char ch1 = str.charAt(0); //почему return возвращает как 53 Должно быть 5
System.out.println("ch1 - " + ch1 + " число - " + Character.isDigit(ch1)); // для проверки
char ch2 = str.charAt(1); //почему return возвращает как 52 Должно быть 4
System.out.println("ch2 - " + ch2 + " число - " + Character.isDigit(ch2)); // для проверки
char ch3 = str.charAt(2); //почему return возвращает как 54 Должно быть 6
System.out.println("ch3 - " + ch3 + " число - " + Character.isDigit(ch3)); // для проверки
return (ch1 + ch2 + ch3);
}
}
Михаил
4 уровень
Почему у меня получаеться 159
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Илья ГековMaster
21 ноября 2018, 22:33
Каждый char имеет свой цифровой код. При сложении char (ch1 + ch2 + ch3) складываются коды этих чаров.
0
Михаил
21 ноября 2018, 22:34
а как сложить значения а не код
0
Илья ГековMaster
21 ноября 2018, 22:38
Например, воспользоваться Integer.parseInt(), но сначала придется привести чары к стрингам.
+3
Михаил
21 ноября 2018, 22:47
Получаеться мы вначале int number проводили в String, потом char к String и конце String в int
0
Илья ГековMaster
21 ноября 2018, 23:05
Можно пойти и другими путями, не используя строки. Например, использовать остаток от деления на 10 (number%10) - это будет последняя цифра в числе.
0
Михаил
21 ноября 2018, 23:13
да я так пробовал - получилось return number % 10 + number / 10 % 10 + number / 100;, просто в коментах увидел твою подсказку, что можно таким способом и стало интересно
0
Вячеслав
22 ноября 2018, 18:38
Можно реализовать ваш метод с символами и строками, безусловно, но он более "трудозатратный" (и для компьютера при вычислении). Способом же нахождения остатка от деления на 10 и последующего целочисленного деления на 10 в условном цикле задача решается в несколько строчек.
+1