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.
- Obtenha o número de entrada do usuário.
- Mantenha-o em uma variável temporária.
- Inverta o número.
- Após a reversão, compare com uma variável temporária.
- 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 -
- Programa Palindrome em C ++
- Melhor compilador C ++
- Série Fibonacci em C ++
- Sobrecarga em C ++
- Sobrecarga em Java
- Tipos de Dados C ++
- Sobrecarga de Python
- Os 11 principais recursos e vantagens do C ++
- Série Fibonacci em JavaScript com exemplos