Search code examples
javalogicpalindrome

Number Palindrome Program


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

Solution

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