Neste programa, você aprenderá a verificar se um número é palíndromo ou não em Java. Isso é feito usando o loop for e while.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:
- Instrução Java if… else
- Java while e do … while Loop
- Java para Loop
Exemplo 1: Programa para verificar o Palíndromo usando loop while
public class Palindrome ( public static void main(String() args) ( int num = 121, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable while( num != 0 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; num /= 10; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Resultado
121 é um número de palíndromo.
Neste programa,
- Primeiro, o valor de determinado número (num) é armazenado em outra variável inteira, originalInteger. Isso ocorre porque precisamos comparar os valores do número invertido e do número original no final.
- Então, um loop while é usado para percorrer num até que seja igual a 0.
- Em cada iteração, o último dígito de num é armazenado no restante.
- Em seguida, o resto é adicionado a reversedInteger de forma que seja adicionado ao próximo valor de casa (multiplicação por 10).
- Em seguida, o último dígito é removido de num após a divisão por 10.
- Finalmente, reversedInteger e originalInteger são comparados. Se igual, é um número de palíndromo. Se não, não é.
Aqui estão as etapas de execução que ocorrem:
Etapas de execução do Palíndromonum | num! = 0 | restante | reversedInteger |
---|---|---|---|
121 | verdade | 1 | 0 * 10 + 1 = 1 |
12 | verdade | 2 | 1 * 10 + 2 = 12 |
1 | verdade | 1 | 12 * 10 + 1 = 121 |
0 | falso | - | 121 |
Exemplo 2: Programa para verificar o Palíndromo usando o loop for
public class Palindrome ( public static void main(String() args) ( int num = 11221, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable for( ;num != 0; num /= 10 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Resultado
11221 não é um palíndromo.
No programa acima, o loop for é usado em vez de um loop while.
Em cada iteração, num /= 10
é executado e a condição num !=0
é verificada.