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>
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