2016-02-22 3 views
0

Я кодирую текстовую панель (java) в окнах 8. Я написал программу, чтобы проверить, является ли данный номер палиндром или нет. Но для каждого введенного выбора (независимо от количества), он всегда показывает, что это не палиндром. Пожалуйста, помогите мне, сообщив мне, что не так с моим кодом.неправильный вывод программы (логическая ошибка)

class reversenumber 
{ 
    private int n=99; 
    private int rem=0; 
    private int rev=0,d; 

    public void calc() 
    { 
     while(n>=0) 
     { 
      rem=n%10; 
      rev=(rev*10)+rem; 
      n=n/10; 

      if(n==0) 
      { 
       break; 
      } 
     } 
     if(rev==n) 
     { 
      System.out.println("The number is a palindrome"); 
     } 
     else 
     { 
      System.out.println("The number is not a palindrome"); 
     } 
    } 

    public static void main(String args[]) 
    { 
     reversenumber x=new reversenumber(); 
     x.calc(); 
    } 
} 

ответ

1

Вот вопрос:

if(rev==n) 
    { 
     System.out.println("The number is a palindrome"); 
    } 

Поскольку п уже стал 0, вы сравниваете это реверс начального значения п, так как он никогда не равен, следовательно, вы получаете неправильный вывод. Таким образом, вы можете сделать другую переменную и сначала присвоить ей значение n. Тогда внутри, если вы можете сравнить rev с другим номером. Надеюсь это поможет.

Смежные вопросы