Как определить, является ли число палиндромом или нет в 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()); }