Учитель zapp

Сумма цифр трехзначного числа

  • 6
  • Недоступна
Вашему вниманию предлагается задачка, над которой придется немного помозговать. Или погуглить, если не слишком любите математические головоломки. Но в любом случае будет полезно понять, почему, что и как. Так вот, вам нужно реализовать метод, который принимает на вход трехзначное число, а выдает на выходе — сумму его цифр.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (151)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Alex4 уровень, Москва
10 часов назад
Мне показалось правильным решением использовать темы, которые уже были освещены или находятся в смежных с ними темами. Переводим изначальное число в стринг, затем в цикле конвертируем каждый символ в цифру и суммируем. Или с таким подходом что-то не так?
String str = Integer.toString(number);
int intStr = str.length();
int sum = 0;
for (int i = 0; i<intStr; i++) {
    sum = sum + Character.getNumericValue(str.charAt(i));
}
return sum;
8 часов назад
Замени на цикл for...each, будет еще лучше.
Nikolai Tarasiuk17 уровень, Киев
четверг, 15:31
почему не проходит вариант с рекурсией ?
brainiac4 уровень, Киев
11 сентября, 13:27
решается в одну строку "return = *** " и двумя видами деления % и /
Евгений6 уровень, Домодедово
11 сентября, 08:39
for(;number!=0;number/=10){sum+=number%10;}
10 сентября, 20:16
Решил простой арифметикой - посчитать сколько единиц, десятков и сотен. Есть вариант решить циклом while, чтобы посчитать сумму скольки-угодно значного числа: пока number > 0, к промежуточной переменной добавить остаток от деления на 10, number присвоить целую часть от деления на 10. НО тема-то про стрим-ридеры, так что должен быть способ считать число, преобразовать в строку, от строки "пооткусывать" по символу, символ преобразовать обратно в число и прибавить к промежуточному результату. Вернуть промежуточный результат когда в строке не останется символов, но не могу допетрить, как...
aMozart234 уровень
10 сентября, 09:12
Хочется решить циклом, так, чтобы к любому числу подходило. Дилемма: надо ограничить количество итераций цикла. Для этого нужно выцепить размер числа, количество символов, ну типа как через .length. Вот только .length по отношению к объекту типа int неприменим. Как лучше поступить?
10 сентября, 21:01
воспользоваться операторами % и / (погуглите разницу) и циклом while можно
wr1045 уровень
7 сентября, 10:57
опять эта ...бучая математика, с какого перепугу я должен знать алгоритм высчитывания сложения трехзначных чисел????
Mennn5 уровень, Нижнекамск
6 сентября, 14:24
9 строчек кода через % - остаток от деления
int sum = 0;
        int currentDigit = number % 10;
когда вы делите 546 на 10 получается 54.6 , но т.к. мы указали переменную типа Int то она не будет считать дробные числа! А дальше думаем сами, развиваем логику. % - это остаток от деления
Aleksandr Evdokimov4 уровень
31 августа, 22:54
Не корректно работает валидатор при варианте решения через while (number % 10 != 0) валидатор выдает ошибку, работает через for (int i = 0; i < 3; i++) .... хотя метод решения через while наиболее логичный в данном случае и работает не только с трехзначным числом.
Андрей4 уровень, Москва
28 августа, 11:27
Прочитал некоторые из подходов к решению и либо я такой глупый или люди ниже перемудрили с задачей. Я подошёл следующим образом: Основная цель выделить три составляющие от изначальной трёхзначной цифры. Т.е. создаём три переменные, где: Первая показывает сколько сотен в данном числе - int всё равно возвращает целочисленное значение; Вторая показывает сколько десятков будет в числе если из него вычесть все целые сотни (Первая переменная*100); Третья показывает сколько единиц останется если из числа выкинуть все сотни и десятки. Ну а дальше всё складываем. Может быть переиспользовать такой метод на более крупных значениях будет не очень удобно, однако думаю через циклы можно вполне достигнуть автоматизации и проделывать подобную махинацию с числом любого размера. В этой задаче не стал заморачиваться с циклами и уж тем более с преобразованием в строку, т.к. на фоне поставленной задачи это выглядит, как сборка автомобиля (причём с текущим уровнем знаний достаточно хреновенького автомобиля) для поездки в магазин через дорогу.