How to recursively check if a number is palindrome in Node.js

2 Answers

0 votes
function recursivelyCheckPalindrome(n) {
    if (n < 0) {
        return false; 
    }

    // This initializes a static variable inverse_number the first time the function is called. 
    // The use of typeof ensures this initialization only happens once.
    if (typeof recursivelyCheckPalindrome.inverse_number == 'undefined') {
        recursivelyCheckPalindrome.inverse_number = 0;
    }
      
    if (n == 0) {
        return false;
    }
    
    recursivelyCheckPalindrome.inverse_number = (recursivelyCheckPalindrome.inverse_number * 10) + (n % 10);
    recursivelyCheckPalindrome(parseInt(n / 10));
   
    return n === recursivelyCheckPalindrome.inverse_number;
}

const n = 12321;

if (recursivelyCheckPalindrome(n) === true) {
    console.log("Palindrome");
} else {
    console.log("NOT Palindrome");
}



/*
run:
  
Palindrome
           
*/

 



answered Oct 17, 2024 by avibootz
edited Oct 17, 2024 by avibootz
0 votes
function recursivelyCheckPalindrome(n, original) {
    if (n === 0) {
        const originalStr = Math.abs(original).toString();
        
        return originalStr === originalStr.split('').reverse().join('');
    }
 
    return recursivelyCheckPalindrome(Math.floor(n / 10), original);
}
 
const n = 12321;
 
if (recursivelyCheckPalindrome(n, n)) {
    console.log("Palindrome");
} else {
    console.log("NOT Palindrome");
}



/*
run:
  
Palindrome
           
*/

 



answered Oct 17, 2024 by avibootz

Related questions

1 answer 116 views
2 answers 123 views
1 answer 125 views
1 answer 329 views
...