How to check if a number is palindrome recursively in PHP

2 Answers

0 votes
function recursiveCheckPalindrome($n) {
    static $inverse_number = 0;
      
    if ($n == 0) {
        return false;
    }
        
    $inverse_number = ($inverse_number * 10) + ($n % 10);
    recursiveCheckPalindrome(round($n / 10));
    
    return  $n == $inverse_number;
}
   
$n = 12321;
   
if (recursiveCheckPalindrome(round($n)) == true) {
    echo "Palindrome";
}
else {
    echo "NOT Palindrome";
}

     
     
/*
run:
      
Palindrome 
      
*/

 



answered Feb 23, 2016 by avibootz
edited Apr 8, 2025 by avibootz
0 votes
function isPalindrome($num, $reversed = 0, $original = null) {
    // Set the original number during the initial call
    if ($original === null) {
        $original = $num;
    }

    // Base case: If the number is reduced to 0, check if the reversed matches the original
    if ($num == 0) {
        return $reversed == $original;
    }

    // Recursive case: Extract the last digit, update reversed, and call recursively
    $remainder = $num % 10;
    $reversed = $reversed * 10 + $remainder;
    
    return isPalindrome(intval($num / 10), $reversed, $original);
}

$number = 12321;

if (isPalindrome($number)) {
    echo "$number is a palindrome.";
} else {
    echo "$number is not a palindrome.";
}

     
     
/*
run:
      
12321 is a palindrome.
      
*/

 



answered Apr 8, 2025 by avibootz
...