Как инвертировать число в java

Аватар пользователя Никита Сысоев
Никита Сысоев
10 октября 2022

Для инвертирования числа в Java необходимо в цикле делить число на 10, пока оно не станет равным 0. А в теле цикла находить остаток от деления на 10 и прибавлять к результату от предыдущего шага, увеличенного в 10 раз.

// Число для инвертирования
int number = 4579;
// Здесь будет храниться результат и промежуточные значения
int result = 0;

// Пока число не станет равным нулю
while (number != 0) {
    // "Отщипываем" по числу с конца и прибавляем к предыдущему результату, увеличенному в 10 раз
    result = result * 10 + number % 10;
    // Уменьшаем число в 10 раз
    number = number / 10;
}

System.out.println(result); // => 9754

// Последовательность значений в цикле:

// result = 0 * 10 + 9;
// number = 457;

// result = 9 * 10 + 7;
// number = 45;
// и т.д.

0 0
Аватар пользователя Сергей Якимович
Сергей Якимович
18 ноября 2022

Можно перевести в строку и сделать reverse строки :

String str = String.valueOf(number);
StringBuilder builder = new StringBuilder(str);
builder.reverse();
int result = Integer.parseInt(builder.toString());
0 0
Аватар пользователя Seyran
Seyran
13 января 2025

Ваше решение, в котором используется деление на 10 в цикле, не учитывает возможность переполнения Int.

0 0