Introducción a Palindrome en C ++

Un palíndromo es un número, secuencia o una palabra que lee lo mismo hacia atrás que hacia adelante. Señora En Eden, I'm Adam es uno de los mejores ejemplos de palabras de palíndromo que suena igual después de revertir. Aquí es donde el palíndromo hace que las cosas sean interesantes, actúan como espejos. El nombre 'palíndromo' en realidad significa volver a correr de acuerdo con la etimología griega. En C ++, el número de palíndromo es un número que permanece igual después del reverso. Pero, ¿cómo es esto posible? ¿Cómo verificaremos si un número es demasiado grande y complejo? Siempre tenga en cuenta este pequeño algoritmo para verificar si un número es un palíndromo o no.

  1. Obtenga el número de entrada del usuario.
  2. Mantenlo en una variable temporal.
  3. Invierte el número.
  4. Después de invertirlo, compárelo con una variable temporal.
  5. Si es igual, entonces el número es un palíndromo.

No se preocupe, este es un ejemplo, supongamos que tenemos que imprimir palíndromos entre el rango de números dado. Por ejemplo, el rango es (10, 122) y la salida debe ser (11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121)

Programa C ++ para implementar Palindrome

#include
using namespace std;
// Function to check if a number is a palindrome or not.
int Palindrome(int n)
(
// Find reverse of n
int reverse = 0;
for (int i = n; i > 0; i /= 10)
reverse = reverse*10 + i%10;
// To check if they are same
return (n==reverse);
)
//function to prints palindrome between a minimum and maximum number
void countPalindrome(int minimum, int maximum)
(
for (int i = minimum ; i <= maximum; i++)
if (Palindrome(i))
cout << i << " ";
)
// program to test above functionality
int main()
(
countPalindrome(100, 2000);
return 0;
)

Salida:

Tomemos un ejemplo más específicamente usando un ciclo while que también explicará el algoritmo que discutimos en la introducción. Tomaremos un número como entrada del usuario y verificaremos si es un palíndromo o no.

Programa C ++ para verificar si un número es palíndromo o no

#include
using namespace std;
int main()
(
int n, sum=0, temp, reverse;
cout<<"Please enter the Number=";
cin>>n;
temp=n;
while(n>0)
(
reverse=n%10;
sum=(sum*10)+reverse;
n=n/10;
)
if(temp==sum)
cout<<"The number is Palindrome.";
else
cout<<"The number is not Palindrome.";
return 0;
)

Salida:

El código anterior tomará un número como entrada del usuario y lo colocará en una variable temporal, ya que puede ver que la suma ya es 0, usará un bucle while hasta que el número se convierta en 0 y, a medida que se escriba el código, realizará el operación como se escribe después del ciclo while. Si el número se convierte en 0, verificará si la variable temporal es igual a la suma o no. Si la condición satisface, imprimirá que el número es palíndromo; de lo contrario, si la condición falla, pasará a otra parte e imprimirá que el número no es palíndromo.

Un ejemplo más usando un ciclo do-while que también explicará el algoritmo que discutimos en la introducción. Tomaremos un número como entrada del usuario y verificaremos si es un palíndromo o no.

Programa C ++ para verificar si un número es palíndromo o no

#include
using namespace std;
int main()
(
int x, number, reverse = 0, temp ;
cout << "Please enter a number here: ";
cin >> number;
x = number;
do
(
temp = number % 10;
reverse = (reverse * 10) + temp;
number = number / 10;
) while (number != 0);
cout << " The reverse of the number is: " << reverse << endl;
if (x == reverse)
cout << " Entered number is a Palindrome.";
else
cout << " Entered number is not a Palindrome.";
return 0;
)

Salida:

Ventajas

  • Suponga que en su proyecto desea hacer coincidir la primera cadena / elemento con el último, luego el segundo elemento / cadena con el segundo y así sucesivamente, y la cadena será palíndromo si llega al centro. Simplemente usando for loop puede realizar todas las operaciones y ahorra una gran cantidad de tiempo y espacio cuando se trata de programación porque en este caso, no tiene que modificar la cadena existente ni escribir otra variable en la memoria. Además, las coincidencias requeridas son completamente iguales a la mitad de la longitud de la cadena.
  • Si está trabajando en un lenguaje de programación donde la inversión de cadenas es fácil pero requerirá una cantidad adicional de espacio para almacenar esa cadena inversa de otra manera, como la recursión, requiere más marco de pila. Hay una forma más en lugar de recurrencia y es escribir un bucle en el medio de la cadena para verificar si la letra correspondiente en cada extremo es la misma o no. Si es desigual, rompa el par temprano y declare que la cuerda no es un palíndromo.
  • El enfoque anterior tiene la ventaja de no desperdiciar recursos computacionales como la recursividad, sin necesidad de marcos de pila adicionales, pero tampoco es simple como invertir la cadena y verificar la igualdad entre ellos. Requiere esfuerzo, pero siempre será menor que otros algoritmos porque esa es la forma más sencilla de encontrar un palíndromo.
  • Cada técnica tiene sus beneficios en la programación y hay miles de otras formas de hacer la misma tarea pero de manera eficiente. Depende completamente de su proyecto actual en el que esté trabajando. Según su situación, solo tiene que decidir qué técnica le ayudará a obtener los mejores beneficios, independientemente de los inconvenientes.
  • En un proyecto real, debe realizar n números de comprobaciones de palíndromo con frecuencia en un corto período de tiempo, luego debe implementar el algoritmo anterior en primer lugar hasta que, a menos que requiera una solución más optimista para las limitaciones técnicas actuales.

Conclusión

Mediante el uso de un algoritmo de palíndromo, puede hacer que su búsqueda sea más eficiente y más rápida para encontrar palíndromos, independientemente de los tipos de datos como caracteres de cadena o enteros. Para proyectos que tienen múltiples datos en los diferentes sistemas, estos algoritmos se pueden usar para hacer que el rendimiento general sea mucho más rápido.

Artículos recomendados

Esta es una guía para Palindrome en C ++. Aquí discutimos el programa C ++ para verificar e implementar el Palindrome con las ventajas. También puede consultar el siguiente artículo para obtener más información:

  1. Programa Palindrome en C ++
  2. Mejor compilador de C ++
  3. Serie Fibonacci en C ++
  4. Sobrecarga en C ++
  5. Sobrecarga en Java
  6. Tipos de datos C ++
  7. Sobrecarga de Python
  8. Las 11 características y ventajas principales de C ++
  9. Serie Fibonacci en JavaScript con ejemplos