Проверка, является ли int палиндромом или нет без преобразования в строку? - PullRequest
1 голос
/ 16 марта 2019
public class Palindrome {
    public static void main(String args[]) {
        int x = 121;
        int res = 0;
        while (x > 0) {
            res = res * 10 + (x % 10);
            x /= 10;
        }
        if (x - res == 0) {
            System.out.println("True" + res);
        } else
            System.out.println("False" + res);
    }
}

Привет!Этот код проверяет, является ли целое число палиндромом, без преобразования int в String.По какой-то причине компьютер считает, что res не совпадает с x, хотя оба представляют число 121.Благодарим за помощь и заранее благодарим!

1 Ответ

1 голос
/ 16 марта 2019

Вы были близки.Вот решение, основанное на том, что вы сделали:

static bool isPalindrome (int n1, int n2) {
    return getReverseInteger(n1) == n2;
}

static int getReverseInteger (int n) {
    int nReversed = 0;
    while (n > 0) {
      int digit = n % 10;
      nReversed = nReversed * 10 + digit;
      n = (n - digit) / 10;
    }
    return nReversed;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...