Как определить, является ли число палиндромом или нет в Java

У меня возникают проблемы с выяснением, правильно ли я делаю формулу для определения, является ли число, введенное пользователем, палиндромом или нет (также мне нужно использовать цикл while). Я правильно делаю математику? Когда я пытаюсь ввести данные, он просто сидит и ничего не делает. Вот код:

System.out.print("Enter the number you would like to be checked if it is a palindrome:");
int num = input.nextInt();
int rev = num % 10;
int count = 1;
int i = 0;
int originalNum = num;

while(count < 2)
    rev = num % 10;
    num = num / 10;
    i = i*10 + rev;

    count = count + 1;
if(originalNum == i)
    System.out.println("The number you input is a palindrome.");
else
    System.out.println("The number you input is not a palindrome.");

2 ответа

Решение

Я сделал некоторые изменения в вашем коде. Теперь это работает.

        int num = input.nextInt();
        int rev=0;
        int i = 0;
        int originalNum = num;

        while(num!=0){
            rev = num % 10;
            i = i*10 + rev;
            num = num / 10;
        }

            if(originalNum == i)
                System.out.println("The number you input is a palindrome.");
            else
                System.out.println("The number you input is not a palindrome.");

Смотрите примеры обнаружения палиндрома на сайте Rosetta Code.

Вот первое из перечисленных (то есть "нерекурсивное" решение). Вы, конечно, должны сначала преобразовать свой номер в строку, чтобы использовать это:

public static boolean pali(String testMe){
  StringBuilder sb = new StringBuilder(testMe);
  return testMe.equals(sb.reverse().toString());
}
Другие вопросы по тегам