Comprobar si un número con un número par de dígitos es palíndromo o no

Dado un número N que contiene un número par de dígitos . La tarea es comprobar si ese número es palíndromo o no.
Ejemplos: 
 

Input: N = 123321
Output: Palindrome

Input: 1234
Output: Not palindrome

Un enfoque ingenuo es recorrer desde el frente y el reverso de ese número y detenerse donde no coincidan.
Un enfoque eficiente es utilizar el siguiente hecho:
 

El número palíndromo que tiene un número par de dígitos siempre es divisible por 11.

 
Supongamos que el número es d1 d2 d3 d4…dn , donde d1, d2, d3… son dígitos de un número. Si es un palíndromo entonces d1 = dn, d2 = dn-1, d3 = dn-2…..y así sucesivamente. Ahora, dado que la divisibilidad de 11 establece que la diferencia de la suma de los dígitos alternos de un número debe ser cero e igual en el caso de que el palíndromo tenga un número par. de dígitos, es decir
 

d1 + d3 + …+ dn-1 = d2 + d4 + d6 + … + dn 

Entonces, un número palindrómico que tiene un número par de dígitos siempre es divisible por 11.
 

C++

// C++ program to find number is palindrome
// or not without using any extra space
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if the number is palindrome
bool isPalindrome(int n)
{
    // if divisible by 11 then true
    if (n % 11 == 0) {
        return true;
    }
 
    // if not divisible by 11
    return false;
}
 
// Driver code
int main()
{
    isPalindrome(123321) ? cout << "Palindrome"
                         : cout << "Not Palindrome";
    return 0;
}

Java

// Java program to find number
// is palindrome or not without
// using any extra space
class GFG
{
    // Function to check if the
    // number is palindrome
    static boolean isPalindrome(int n)
    {
        // if divisible by 11 then true
        if (n % 11 == 0)
        {
            return true;
        }
     
        // if not divisible by 11
        return false;
    }
     
    // Driver code
    public static void main(String[] args)
    {
        System.out.println(isPalindrome(123321) ?
                                   "Palindrome" :
                               "Not Palindrome");
    }
}
 
// This code is contributed by Bilal

Python3

# Python 3 program to find number is palindrome
# or not without using any extra space.
 
# Function to check if the number is palindrome
def isPalindrome(n) :
 
    # if divisible by 11 then return True
    if n % 11 == 0 :
        return True
 
    # if not divisible by 11 then return False
    return False
 
# Driver code
if __name__ == "__main__" :
 
    n = 123321
      
    if isPalindrome(n) :
        print("Palindrome")
    else :
        print("Not Palindrome")
             
# This code is contributed by ANKITRAI1

C#

// C# program to find number
// is palindrome or not without
// using any extra space
using System;
 
class GFG
{
    // Function to check if the
    // number is palindrome
    static bool isPalindrome(int n)
    {
        // if divisible by
        // 11 then true
        if (n % 11 == 0)
        {
            return true;
        }
     
        // if not divisible by 11
        return false;
    }
     
    // Driver code
    public static void Main()
    {
        Console.Write(isPalindrome(123321) ?
                              "Palindrome" :
                          "Not Palindrome");
    }
}
 
// This code is contributed
// by ChitraNayal

PHP

<?php
// PHP program to find number
// is palindrome or not without
// using any extra space
 
// Function to check if the
// number is palindrome
function isPalindrome($n)
{
    // if divisible by
    // 11 then true
    if ($n % 11 == 0)
    {
        return true;
    }
 
    // if not divisible by 11
    return false;
}
 
// Driver code
echo isPalindrome(123321) ?
             "Palindrome" :
          "Not Palindrome";
 
// This code is contributed
// by ChitraNayal
?>

Javascript

<script>
 
// Javascript program to find number
// is palindrome or not without
// using any extra space
 
    // Function to check if the
    // number is palindrome
    function isPalindrome(n)
    {
        // if divisible by 11 then true
        if (n % 11 == 0)
        {
            return true;
        }
     
        // if not divisible by 11
        return false;
    }
     
    // Driver code
    document.write(isPalindrome(123321) ?
            "Palindrome" :
        "Not Palindrome");
 
// This code contributed by Princi Singh
 
</script>
Producción: 

Palindrome

 

Publicación traducida automáticamente

Artículo escrito por Shashank_Pathak y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *