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

  • 6
  • Недоступна
Вашему вниманию предлагается задачка, над которой придется немного помозговать. Или погуглить, если не слишком любите математические головоломки. Но в любом случае будет полезно понять, почему, что и как. Так вот, вам нужно реализовать метод, который принимает на вход трехзначное число, а выдает на выходе — сумму его цифр.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (410)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Mera
Уровень 4
5 октября, 09:39
https://www.youtube.com/watch?v=vSQwURYY84E
Борис
Уровень 9
8 сентября, 17:34
как забрать значение (цифру) после запятой, после деления на 10? Спасибо
Михаил Кладовщик 80lvl
11 сентября, 14:23
% 10
Admin QA Engineer
29 июля, 10:52
int sum = 0; while (number > 0) { sum += number % 10; number = number / 10; } return sum;
Артём Тищенко
Уровень 4, Черкассы
21 июля, 19:50
Перевел входное значение из int в string, (string == массив char) и вытащил по по индексу каждую цифру
Влад Ворсин
Уровень 8, Москва, Россия
5 июля, 13:53
Итак, по полочкам: 1. Метод main берет заданное ему значение и несет в метод sumDigitsInNumber, подставляя его вместо number. 2. Нам нужна переменная, которая как раз станет суммой цифр, пусть это будет sum: int sum = 0; 3. Нам нужна переменная, с помощью которой мы будем вытаскивать значение определенных цифр в нашем значении: int x; 4. Чтобы получить крайнюю правую цифру, мы должны разделить заданное значение на 10 и забрать остаток от этого деления: x = number % 10; 5. Добавляем к нашему sum полученное значение: x = number / 10; 6. Добавляем к sum и возвращаем результат, чтобы метод main его вывел на экран: sum = sum + x; return sum; sum = sum + x; 6. Чтобы получить следующую цифру, мы сначала должны поделить наше число на 10, а потом также взять остаток от деления на 10: number = number / 10; x = number % 10; Именно двумя строчками - почему - далее. 7. Добавляем к нашей уже измененной сумме теперь и эту полученную цифру: sum = sum + x; 8. Теперь наш number после деления на 10 (вот почему двумя строками) стал равен целому числу от деления трехзначного значения на 10. Чтобы вытащить крайнюю левую цифру, просто делим его на 10:
Mr.Shatalin
Уровень 9, Санкт-Петербург, Россия
29 июня, 14:06
return number /100 *3;
kopetan kopetan
Уровень 4, Санкт-Петербург
9 июня, 13:34
int first = number / 10; // Получаем 54, так как у нас только целые числа first = first / 10; // 54 / 10 = 5, так как у нас целые числа int second = number / 10; // Получаем 54 second = second % 10; // Остаток от деления 54 на 10 = 4 int third = number % 10; // Получаем третье число - остаток от деления на 10 == 6 int sum = first + second + third; return sum;
Neonila Kravtcova
Уровень 4, Санкт-Петербург, Россия
3 июня, 19:21
public static int sumDigitsInNumber(int number) { int sum = 0; for (int i = 0; number > 10; i++){ sum += number % 10; number = number / 10; }; sum = sum + number % 10; return sum; }
Sergey
Уровень 4, Москва
3 мая, 20:11
int second =number%100/10;
Igor Sholia
Уровень 7, Ужгород, Украина
3 мая, 07:45
почему так? помогите,пожалуйста, разобраться :) public static int sumDigitsInNumber(int number) { int n1 = number%100; //5 int nA = n1*100; //500 int nB = (number-nA); //46 int n2 = nB%10; //4 int nC = n2*10; //40 int n3 = nB-nC; //6 return n1+n2+n3; } вывод -3972
Igor Sholia
Уровень 7, Ужгород, Украина
3 мая, 07:49
если заменить % на / все работает