2015-02-09 3 views
-1

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

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."); 
+3

Java не является Python. Вы наверняка пропустили несколько брекетов. В настоящее время цикл while выполняет только «rev = num% 10;», что, вероятно, не является тем, что вы хотите. –

+2

Мне кажется, что проще сделать что-то вроде Integer.toString (value) .equals (new StringBuilder (Integer.toString (значение)). Reverse.toString()) ' – Jack

+0

ZouZou Я попробую его с фигурными скобками, я думаю, также у меня есть никогда ранее не программировался на Python. – Fyree

ответ

0

Я сделал некоторые изменения в code.Now, это работает.

 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."); 
+0

Спасибо за помощь (я понятия не имею, почему это было подавлено кем-то)! – Fyree

1

See examples of palindrome detection at the Rosetta Code website.

Это первый в списке (т. Е. «Нерекурсивное» решение). Вы, конечно, придется отдать свой номер в строку первой, чтобы использовать этот один:

public static boolean pali(String testMe){ 
    StringBuilder sb = new StringBuilder(testMe); 
    return testMe.equals(sb.reverse().toString()); 
} 
Смежные вопросы