JavaRush/Курсы/Java Syntax/Дополнительные задания

Дополнительные задания

Открыта
Дополнительные задания - 1

— Здорово, боец!

— Здравия желаю, капитан Бобров!

— У меня для тебя шикарная новость. Вот тебе задания для закрепления полученных навыков. Выполняй их каждый день, и твои навыки будут расти с неимоверной скоростью. Они специально разработаны для выполнения их в Intellij IDEA.

3
Задача
Java Syntax Pro Beta,  3 уровень12 лекция
Недоступна
Айтишный релакс
Нет ничего лучше, чем посмотреть интересное полезное видео... и получить за это кучу черной материи!

— И как мне их решать?

— Для начала запусти Intellij IDEA, в ней можно получить задачи с помощью плагина. Сдавать тоже с его помощью – все как на видео, которое ты сегодня видел.

— OK, прямо сейчас и попробую…

— Отлично, а когда попробуешь, вот тебе замечательное видео о некоторых возможностях Intellij IDEA. Видео довольно большое, но очень интересное.

Комментарии (584)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Dk VdecPerformance Engineer в Sber
13 декабря 2024, 21:42
Просто по рофлу кидаю однострочный вариант с рекурсией и тернарником) public static int sumDigitsInNumber(int number) { return (number == 0) ? 0 : number%10 + sumDigitsInNumber(number/10); }
vlafriday
Уровень 1
2 апреля 2024, 12:07
02.04.2024 check, мой уровень 3
MrSinkaaa
Уровень 16
12 сентября 2023, 18:22
public static int sumDigitsInNumber(int number) { int sum = 0; while(number > 0) { sum += number % 10; number /= 10; } return sum; }
Владислав
Уровень 12
17 июля 2023, 08:41
public static int sumDigitsInNumber(int number) { //напишите тут ваш код char[] list = (number + "").toCharArray(); int sum = 0; for (int i = 0; i < list.length; i++) { sum += Integer.parseInt(String.valueOf(list[i])); } return sum; }
Tatyana Kuznetsova
Уровень 15
12 июля 2023, 15:16
Решила в пару строчек рекурсивно, неплохо if (number / 10 < 1) { return number; } return number % 10 + sumDigitsInNumber(number / 10);
vacallkingg
Уровень 8
8 января 2025, 12:49
Как? Я не понимаю.
Vladislav Tsar
Уровень 22
23 августа 2022, 06:00
upd. while (n>0){ <Работает пока входящее число больше нуля result += n%10; <Прибавляем остаток от деление входящего числа n = n/10; <Уменьшаем входящее число на 1 цифру } <Когда входящее число будет меньше 10, цикл закроется, выводим результат
Alex Kotovskyi
Уровень 11
6 октября 2022, 11:15
Сурово и эффектно. Я через линкедлист нарисовал решение, но твоё конечно намного элегантнее
Игорь Черных
Уровень 24
2 июля 2022, 04:17
Поиграйтесь с округлением int b = number/100; int a = number/10 - b*10; int c = number - (number/10)*10; return b+a+c;
9 августа 2022, 20:16
Опять=таки - решение зависит от конкретного посланного числа. Если в функцию пошлют более, чем 3-х значное число - ответ окажется неверным
Павел
Уровень 8
19 февраля 2025, 16:31
В целом соглашусь, но тут как в случае со счетом секунд: конкретика в том что сумма трёхзначного числа. Так что если пошлют более чем трёх значное число - это уже совсем другая задача.
Alena
Уровень 32
17 мая 2022, 15:25
Только не пугайтесь, но вот так тоже можно. return Arrays.stream(String.valueOf(number) .split("")) .map(Integer::valueOf) .reduce(Integer::sum) .get();
Vladislav Tsar
Уровень 22
23 августа 2022, 05:58
Щас бы на 3ем уровне стримами людей пугать :DDDD
Vladislav Tsar
Уровень 22
22 апреля 2022, 14:40
number = number/100 + number%100/10 + number%10; Один из глупейших мб вариантов, зато свой
9 августа 2022, 20:13
Решение неверно! Если послать в вашу функцию более, чем 3-х значное число, ответ будет неверный. Решается задача циклом либо рекурсией. Если решать - как у вам, то надо будет открыть максимальное число, которое помещается в int, и написать длинную простыню: number = number/1000000(количество разрядов) + и т.д. Но даже в этом случае ваша программа будет зависеть от конкретной реализации int - на некоторых машинах int может занимать 4 байта, на других - 8 байт.. Так что ваше решение не универсально..
Vladislav Tsar
Уровень 22
23 августа 2022, 05:55
Был молод и глуп) Щас бы сделал так) int n = 1468; int res = 0; while (n>0){ res += n%10; n = n/10; } System.out.println(res);
15 августа 2023, 20:18
Если бы да кабы, в условии задачи сказано "3-ех значное число", так что решение соответствует условию и, следовательно, оно является верным.
Евгений
Уровень 13
5 апреля 2022, 19:41
Сразу отбросил идею с арифметикой - не мое. Перевел int в String В цикле, каждый символ строки переводил в инт и прибавлял к результирующей переменной. Оказалось я не один такой 😆 И вот, что интересно мне уже давно. Если в IDEA, с плагином JR, запросить правильное решение, имея проверенное свое, то получим merge решений, вашего и правильного от JavaRush. Так вот там есть поле Size. Название намекает, что это некий размер, но размер чего и в чем? Например, в данной задаче размер моего решения - 614, а решения правильного - 2611. Чем меньше тем лучше? Прошу прокомментировать знатоков!