I am stuck on this simple problem and can't figure out the bug. This is a method that returns whether the given number is a palindrome or not. However, every time it is returning false even though it's returning the correct palindrome. Please help.
public static boolean isPalindrome(int number) {
int reverse = 0;
while (number != 0) {
reverse *= 10;
reverse += (number % 10);
number /= 10;
}
System.out.println(reverse);
return (reverse == number);
}
It looks like you're modifying number
as you go, so number
at the end is not the number
that was passed in.
Maybe something like...
public static boolean isPalindrome(final int originalNumber) {
int number = originalNumber;
int reverse = 0;
while (number != 0) {
reverse *= 10;
reverse += (number % 10);
number /= 10;
}
System.out.println(reverse);
return (reverse == originalNumber);
}