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

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

Java Syntax
3 уровень , 12 лекция
Открыта
Дополнительные задания - 1

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

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

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

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

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

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

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

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

Комментарии (584)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Dk Vdec Уровень 4
13 декабря 2024
Просто по рофлу кидаю однострочный вариант с рекурсией и тернарником) public static int sumDigitsInNumber(int number) { return (number == 0) ? 0 : number%10 + sumDigitsInNumber(number/10); }
vlafriday Уровень 1
2 апреля 2024
02.04.2024 check, мой уровень 3
MrSinkaaa Уровень 16
12 сентября 2023
public static int sumDigitsInNumber(int number) { int sum = 0; while(number > 0) { sum += number % 10; number /= 10; } return sum; }
Владислав Уровень 12
17 июля 2023
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
Решила в пару строчек рекурсивно, неплохо if (number / 10 < 1) { return number; } return number % 10 + sumDigitsInNumber(number / 10);
vacallkingg Уровень 8
8 января 2025
Как? Я не понимаю.
Vladislav Tsar Уровень 22
23 августа 2022
upd. while (n>0){ <Работает пока входящее число больше нуля result += n%10; <Прибавляем остаток от деление входящего числа n = n/10; <Уменьшаем входящее число на 1 цифру } <Когда входящее число будет меньше 10, цикл закроется, выводим результат
Alex Kotovskyi Уровень 11
6 октября 2022
Сурово и эффектно. Я через линкедлист нарисовал решение, но твоё конечно намного элегантнее
Игорь Черных Уровень 2
2 июля 2022
Поиграйтесь с округлением int b = number/100; int a = number/10 - b*10; int c = number - (number/10)*10; return b+a+c;
9 августа 2022
Опять=таки - решение зависит от конкретного посланного числа. Если в функцию пошлют более, чем 3-х значное число - ответ окажется неверным
Павел Уровень 8
19 февраля 2025
В целом соглашусь, но тут как в случае со счетом секунд: конкретика в том что сумма трёхзначного числа. Так что если пошлют более чем трёх значное число - это уже совсем другая задача.
Alena Уровень 32
17 мая 2022
Только не пугайтесь, но вот так тоже можно. return Arrays.stream(String.valueOf(number) .split("")) .map(Integer::valueOf) .reduce(Integer::sum) .get();
Vladislav Tsar Уровень 22
23 августа 2022
Щас бы на 3ем уровне стримами людей пугать :DDDD
Vladislav Tsar Уровень 22
22 апреля 2022
number = number/100 + number%100/10 + number%10; Один из глупейших мб вариантов, зато свой
9 августа 2022
Решение неверно! Если послать в вашу функцию более, чем 3-х значное число, ответ будет неверный. Решается задача циклом либо рекурсией. Если решать - как у вам, то надо будет открыть максимальное число, которое помещается в int, и написать длинную простыню: number = number/1000000(количество разрядов) + и т.д. Но даже в этом случае ваша программа будет зависеть от конкретной реализации int - на некоторых машинах int может занимать 4 байта, на других - 8 байт.. Так что ваше решение не универсально..
Vladislav Tsar Уровень 22
23 августа 2022
Был молод и глуп) Щас бы сделал так) int n = 1468; int res = 0; while (n>0){ res += n%10; n = n/10; } System.out.println(res);
15 августа 2023
Если бы да кабы, в условии задачи сказано "3-ех значное число", так что решение соответствует условию и, следовательно, оно является верным.
Евгений Уровень 13
5 апреля 2022
Сразу отбросил идею с арифметикой - не мое. Перевел int в String В цикле, каждый символ строки переводил в инт и прибавлял к результирующей переменной. Оказалось я не один такой 😆 И вот, что интересно мне уже давно. Если в IDEA, с плагином JR, запросить правильное решение, имея проверенное свое, то получим merge решений, вашего и правильного от JavaRush. Так вот там есть поле Size. Название намекает, что это некий размер, но размер чего и в чем? Например, в данной задаче размер моего решения - 614, а решения правильного - 2611. Чем меньше тем лучше? Прошу прокомментировать знатоков!