Introdução ao Palindrome em C ++

Um palíndromo é um número, sequência ou palavra que lê o mesmo para trás e para a frente. Senhora No Éden, eu sou Adam é um dos melhores exemplos de palavras palíndromo que soa o mesmo depois de reverter. É aqui que o palíndromo torna as coisas interessantes, elas agem como espelhos. O nome 'palíndromo' na verdade significa voltar atrás de acordo com a etimologia grega. Em C ++, o número do palíndromo é um número que permanece o mesmo após o reverso. Mas como isso é possível? Como vamos verificar se um número é muito grande e complexo? Lembre-se sempre deste pequeno algoritmo para verificar se um número é um palíndromo ou não.

  1. Obtenha o número de entrada do usuário.
  2. Mantenha-o em uma variável temporária.
  3. Inverta o número.
  4. Após a reversão, compare com uma variável temporária.
  5. Se for o mesmo, o número é um palíndromo.

Não se preocupe, aqui está um exemplo, suponha que tenhamos que imprimir palíndromos entre o intervalo determinado de números. Por exemplo, o intervalo é (10.122), a saída deve ser (11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121)

Programa C ++ para implementar o 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;
)

Resultado:

Vamos dar mais um exemplo, usando um loop while, que também explica o algoritmo discutido na introdução. Vamos pegar um número como entrada do usuário e verificar se é um palíndromo ou não.

Programa C ++ para verificar se um número é um palíndromo ou não

#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;
)

Resultado:

O código acima pegará um número como uma entrada do usuário e o colocará em uma variável temporária, como você pode ver que a soma já é 0, ele usará um loop while até que o número se torne 0 e, à medida que o código for escrito, ele executará o operação conforme escrita depois do laço while. Se o número se tornar 0, ele verificará se a variável temporária é igual à soma ou não. Se a condição for satisfatória, imprimirá que o número é palíndromo; caso contrário, se a condição falhar, irá para outra parte e imprimirá que o número não é um palíndromo.

Mais um exemplo usando um loop do-while que também explicará o algoritmo que discutimos na introdução. Vamos pegar um número como entrada do usuário e verificar se é um palíndromo ou não.

Programa C ++ para verificar se um número é um palíndromo ou não

#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;
)

Resultado:

Vantagens

  • Suponha que no seu projeto você queira combinar a primeira string / elemento com o último, depois o segundo elemento / string com o segundo último e assim por diante, e a string será palíndromo se você chegar ao meio. Ao usar o loop for, você pode executar todas as operações e economiza uma grande quantidade de tempo e espaço quando se trata de programação, porque nesse caso, você não precisa modificar a string existente nem gravar outra variável na memória. Além disso, as correspondências necessárias são completamente iguais à metade do comprimento da string.
  • Se você estiver trabalhando em uma linguagem de programação em que a reversão de cadeia é fácil, mas será necessário um espaço extra para armazenar essa cadeia reversa de outra maneira, como a recursão requer mais quadros de pilha. Há mais uma maneira, em vez de recursão, que é escrever um loop no meio da string para verificar se a letra correspondente em cada extremidade é a mesma ou não. Se desigual, quebre o par mais cedo e declare a corda como não um palíndromo.
  • A abordagem acima tem a vantagem de não desperdiçar recursos computacionais, como recursão, sem a necessidade de quadros de pilha extras, mas também não é simples, basta reverter a string e verificar a igualdade entre eles. É preciso esforço, mas sempre será menor que outros algoritmos, porque essa é a maneira mais simples de encontrar um palíndromo.
  • Cada técnica tem seus benefícios na programação e existem milhares de outras maneiras de executar a mesma tarefa, mas de maneira eficiente. Depende completamente do seu projeto atual em que você está trabalhando. Você só precisa decidir, de acordo com a sua situação, qual técnica o ajudará a obter os melhores benefícios, independentemente das desvantagens.
  • Em um projeto real, é necessário executar n números de verificações de palíndromo com frequência em um curto espaço de tempo; em seguida, você deve implementar o algoritmo acima antes e a menos que exija uma solução mais otimista para as restrições técnicas atuais.

Conclusão

Ao usar um algoritmo de palíndromo, você pode tornar sua pesquisa mais eficiente e rápida na localização de palíndromos, independentemente de tipos de dados, como caracteres ou números inteiros. Para projetos que possuem vários dados nos diferentes sistemas, esses algoritmos podem ser usados ​​para tornar o desempenho geral muito mais rápido.

Artigos recomendados

Este é um guia para o Palindrome em C ++. Aqui discutimos o programa C ++ para verificar e implementar o Palindrome com as vantagens. Você também pode consultar o seguinte artigo para saber mais -

  1. Programa Palindrome em C ++
  2. Melhor compilador C ++
  3. Série Fibonacci em C ++
  4. Sobrecarga em C ++
  5. Sobrecarga em Java
  6. Tipos de Dados C ++
  7. Sobrecarga de Python
  8. Os 11 principais recursos e vantagens do C ++
  9. Série Fibonacci em JavaScript com exemplos