Работа с цифрами числа

Базовый Algorithms
≈ 2 мин чтения

Как получить цифры числа

У целого положительного числа последнюю цифру удобно получать остатком от деления на 10, а затем удалять эту цифру целочисленным делением на 10. Повторяя эти две операции, можно обработать число целиком.

int number = 5382;

while (number > 0) {
    int digit = number % 10;
    System.out.println(digit);
    number /= 10;
}

Цифры выводятся справа налево: 2, 8, 3, 5. Это естественный порядок для такого способа разбора числа, потому что операция % 10 всегда берёт последнюю цифру.

На цифрах можно строить обычные алгоритмы

После извлечения очередной цифры с ней можно делать то же, что и с элементом массива: считать подходящие цифры, находить среди них максимум, складывать их или проверять условие. Например, сумма цифр считается так:

int number = 5382;
int sum = 0;

while (number > 0) {
    sum += number % 10;
    number /= 10;
}

В итоге sum будет равна 18. Здесь снова работает уже знакомая схема: получить очередной элемент, обновить состояние алгоритма и перейти к следующему.

Особый случай — число 0

Для положительных чисел условие while (number > 0) удобно, но для самого числа 0 цикл не выполнится ни разу. Если по смыслу задачи нужно обработать его единственную цифру 0, этот случай следует учесть отдельно.

Следи, можно ли изменять исходное число. В примерах number постепенно уменьшается до нуля. Если исходное значение понадобится после цикла, сначала сохрани его в отдельной переменной или разбирай копию.