палиндром int in java - PullRequest
       9

палиндром int in java

0 голосов
/ 14 апреля 2020

Я пытался использовать некоторые коды при переполнении стека, но когда я использовал некоторые коды, я не получил ответ, который хочу, это мой код сейчас:

public class JavaApplication7 {
public static void main(String[] args) {
    boolean answer = rev(1221);
    if(answer == true) System.out.println("true");
    else System.out.println("false");

}
static boolean rev(int number){
    int reverse = 0, remain;
    int num = number;
    while(number > 0){
        remain = number % 10;
        reverse = (reverse * 10) + remain;
        num = num / 10;

    }
    return number == reverse;
  }  
}

Я хочу проверить, есть ли палиндром равно оригинальному int.

Ответы [ 3 ]

1 голос
/ 14 апреля 2020

У вас есть две ошибки, связанные с путаницей num (локальная копия, которую вы изменяете) и number (параметр, который вы не изменяете). Я бы сделал это final, чтобы прояснить, что значение является постоянным. А затем используйте num последовательно. Я бы тоже немного упростил код. Например,

static boolean rev(final int number) {
    int reverse = 0;
    int num = number;
    while (num > 0) {
        reverse *= 10;
        reverse += num % 10;
        num /= 10;
    }
    return number == reverse;
}

И аналогично в main использование if для печати true или false бессмысленно (и если вы собираетесь это сделать, используйте if (answer) - don добавь ненужное == true). Но я бы предпочел,

public static void main(String[] args) {
    boolean answer = rev(1221);
    System.out.println(answer);
}

Какие выходы

true
0 голосов
/ 14 апреля 2020
static boolean rev(int number){
    int reverse = 0;
    int num = number;

    while(number > 0){
        reverse = reverse * 10 + number % 10;
        number /= 10;
    }
    return reverse == num;
}
0 голосов
/ 14 апреля 2020

Ваша функция оборота должна быть такой, как показано ниже.

    reversedInteger = 0, remainder, originalInteger;

    originalInteger = num;

     while( num != 0 )
            {
                remainder = num % 10;
                reversedInteger = reversedInteger * 10 + remainder;
                num  /= 10;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...