Не понимаю как взять из числа отдельные цифры, мб есть команда, разбивающая число на отдельные числа, или там ещё что-то? Я инфы такой не видел ещё. Ладно бы, если нужно сделать из отдельного числа допустим из 4 чисел, там просто вводили бы а,б,с,д и брали их, а тут я не знаю. Можете ответить?
Ivan Lobynichev
7 уровень
Как взять из введённого числа а отдельные цифры для действий над ними?
Обсуждается
Комментарии (10)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
8 февраля 2020, 08:01
Используй математические операции.
a%10 - остаток от деления числа а на 10 - позволит тебе получить последний разряд числа
(то есть для а = 236 а%10 даст 6)
а / 10 - целочисленное деление на 10, наоборот, позволит тебе отбросить последний разряд числа
(для а = 236 а/10 даст 23. К 23 мы снова можем применить %10 - получим 3. И так далее, пока число не кончится).
0
Roman Turuk
7 февраля 2020, 21:26
Для int справедливо
В результате выполнения получится список со всеми цифрами из этого числа. Для данного случая:
+1
Ksenia VolkovaJava Developer в DXCMaster
8 февраля 2020, 07:56
Какой смысл давать человеку решение со стримом на этом уровне? Чтобы он списал, ничего не поняв?
В чем польза?
+4
Александр Сергеев
4 апреля 2023, 15:55
А вот есть схожая задача, но как к ней подступиться? Из данного Вами числа 1234567 получить такую коллекцию:
1000000
200000
30000
4000
500
60
7
0
hidden #598481
4 апреля 2023, 19:57
Можно математически, можно через строки.
Если через строки, то можно привести число к строке и умножать каждую цифру из записи числа на 10 в степени, равной позиции этой цифры при подсчёте справа налево:
1 * 10 ^ (6 - 0) + 2 * 10 ^ (6 - 1) + 3 * 10 ^ (6 - 2) + ... и т.д., где 6 = длина строки минус один.
Можно математически. По сути так же, только цифры получаются не через преобразование в строку и отдельные цифры, а через деление и остаток от деления
1234567 % 10 = 7, 1234567 / 10 = 123456.
123456 % 10 = 6, 123456 / 10 = 12345.
Ну и степени десятки при этом запоминаешь:
7 * 10 ^ 0 + 6 * 10 ^ 1 и т.д.
А ещё скажи, как можно получить 37 уровень без понимания такого алгоритма?
0
Александр Сергеев
6 апреля 2023, 05:27
Я уже разобрался, спасибо.
0
Елена
7 февраля 2020, 20:54
for (int i = 1; n/i > 0; i *= 10) {
if (остаток от деления равен нулю) {
увеличиваем even;
} else {
увеличиваем odd;
}
}
0
Ivan Lobynichev
7 февраля 2020, 21:02
Что за even и odd?
0
Елена
7 февраля 2020, 21:03
в условии задачи посмотри
0
Alex
7 февраля 2020, 21:13
посмотри перевод этих слов с английского станет понятнее )
0