java 中的回文整数

palindrome int in java

我尝试在 Stack Overflow 上使用一些代码,但是当我使用一些代码时,我没有得到我想要的答案,这是我现在的代码:

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;
  }  
}

我想检查回文是否等于原始整数

你的 rev 函数应该如下所示。

    reversedInteger = 0, remainder, originalInteger;

    originalInteger = num;

     while( num != 0 )
            {
                remainder = num % 10;
                reversedInteger = reversedInteger * 10 + remainder;
                num  /= 10;
            }

您有两个与混淆 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 来打印 truefalse 是没有意义的(如果你打算这样做,请使用 if (answer) - 不要添加不必要的 == true)。但是,我更愿意,

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

输出

true
static boolean rev(int number){
    int reverse = 0;
    int num = number;

    while(number > 0){
        reverse = reverse * 10 + number % 10;
        number /= 10;
    }
    return reverse == num;
}