package com.javarush.task.task01.task0132;
/*
Сумма цифр трехзначного числа
*/
public class Solution {
public static void main(String[] args) {
System.out.println(sumDigitsInNumber(546));
}
public static int sumDigitsInNumber(int number) {
int sum = 0;
do {
sum += number % 10;
number /= 10;
} while (number != 0);
return sum;
}
}
Maxim Gramatunov
22 уровень
Обьясните пожалуйста как это код работает, Задача сумма цифр трехзначного числа
Решен
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Николай Стецюк
17 октября 2020, 17:54
а можно обратным путем без цыкла, как альтернатива:
sum = (a = (number/100)) + (b = (number- a * 100)/10) + (c = (number - (a * 100 + b * 10)));
0
Кирилл
17 октября 2020, 17:55
Код в вопросе лучше т.к он работает даже для шестизначных и т.д чисел
0
Николай Стецюк
17 октября 2020, 17:56
согласен, решил, скорей как понимал, выделяем количество сотен, затем десятков и на остачу количество едениц
+1
Кирилл
17 октября 2020, 17:51
Соответственно на 2 пробег number будет равняться 51,берем остаток от деления на 10,получится 1 прибавляем к sum,уменьшаем число в 10 раз(получится 5),и так далее
0
Кирилл
17 октября 2020, 17:49
Допустим number = 519.Тогда за первый пробег цикла переменная sum увеличится на 9 т.к
оператор % в результате дает остаток от деления(519 % 10 получится 9 ведь мы берем остаток деления числа 519 на 10),а значение переменной number уменьшается в 10 раз( получится 51,остаток откидывается). И так пока твоя переменная не станет равна нулю.
+2
Maxim Gramatunov
17 октября 2020, 17:52
Спасибо тебе большое )
0
hidden #2322530
17 октября 2020, 16:52
а ты его скопировал что ли?
0
Maxim Gramatunov
17 октября 2020, 16:55
Я его давно делал, сейчас хочу по всему пробежаться закрепить, вот и по этой задаче никак не могу понять, как она работает
0
hidden #2322530
17 октября 2020, 17:01
ну ну...
0
Maxim Gramatunov
17 октября 2020, 17:04
В чем проблема подсказать? Если нет желания, просто выйди отсюда
+1
hidden #2322530
17 октября 2020, 17:05
ты только не расплачься
0
Maxim Gramatunov
17 октября 2020, 17:09
Ничего более умного не придумал?)
0