Verificador de Número Palíndromo em Java: Algoritmos com While e For Loops
O que é um Número Palíndromo?
Um número palíndromo lê-se da mesma forma da frente para trás e de trás para frente. Exemplos incluem 121, 393 e 48084. Eles exibem simetria de eixo vertical e são frequentemente usados em quebra-cabeças algorítmicos.
Em Java, verificações de palíndromo são comuns em perguntas de entrevista e desafios de codificação. O algoritmo é direto mas pode ser implementado de múltiplas formas.
Visão Geral do Algoritmo
- Leia o inteiro de entrada.
- Inverta seus dígitos e armazene o resultado.
- Compare o número invertido com o original.
- Se coincidirem, o número é um palíndromo; caso contrário, não é.
Verificando com Loop While
Abaixo está um programa Java conciso que usa um loop while para inverter o número e determinar se é um palíndromo. O código imprime passos intermediários para ilustrar o processo.
package com.guru99;
public class PalindromeNum {
public static void main(String[] args) {
int inputNumber = 171; // número a verificar
int reversed = 0;
int temp = inputNumber;
while (temp > 0) {
int lastDigit = temp % 10;
reversed = (reversed * 10) + lastDigit;
temp /= 10;
}
System.out.println("Número invertido: " + reversed);
if (reversed == inputNumber) {
System.out.println("Número é um palíndromo.");
} else {
System.out.println("Número não é um palíndromo.");
}
}
}
Saída
Número invertido: 171 Número é um palíndromo.
Verificando com Loop For
A mesma lógica pode ser expressa com um loop for, que pode ser preferível em contextos onde o contador de loop é mais naturalmente expresso como índice decrescente.
package com.guru99;
public class PalindromeNum {
public static void main(String[] args) {
int inputNumber = 185; // número a verificar
int reversed = 0;
int temp = inputNumber;
for (; temp > 0; temp /= 10) {
int lastDigit = temp % 10;
reversed = (reversed * 10) + lastDigit;
}
System.out.println("Número invertido: " + reversed);
if (reversed == inputNumber) {
System.out.println("Número é um palíndromo.");
} else {
System.out.println("Número não é um palíndromo.");
}
}
}
Saída
Número invertido: 581 Número não é um palíndromo.
Considerações e Melhores Práticas
- Números Negativos: Por definição, números negativos não são considerados palíndromos devido ao sinal de menos inicial. Retorne
falseimediatamente se a entrada for negativa. - Overflow: Inverter um inteiro de 32 bits pode causar overflow. Para código de produção, use
longou verifique overflow antes de cada multiplicação. - Abordagem com String: Converter o número para string e comparar com sua inversa é frequentemente mais simples e menos propenso a erros, especialmente para números muito grandes.
Para explicações mais detalhadas, consulte GeeksforGeeks e discussão no Stack Overflow sobre inversão de números.
Java
- Dominando Loops While e Do-While em C#: Sintaxe, Exemplos e Boas Práticas
- Dominando Loops For em C#: Sintaxe, Fluxo e Exemplos Práticos
- Java Hello World: Seu Primeiro Programa
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Programa Java para Determinar se um Número é Primo
- Programa Java para Listar Números Primos de 1 a 100 – Guia Passo a Passo
- Gerar Sequência de Fibonacci em Java: Exemplos com For, While e Recursão
- Programa Java para Identificar Números de Armstrong Usando Loop For
- Verificador de Número Palíndromo em Java: Algoritmos com While e For Loops
- Domine Loops em Python: For, While, Break, Continue e Enumerate Explicados