Decompor numero digito a digito

Eu to lendo o livro “Java como Programar 4a Edicao” No comeco eu nao confiei muito no livro, mas agora eu to vendo que pelo tamanhao ele é um bom livro. É bonzão MESMO?

Em algumas partes do livro tem uns exercícios, mas são exercícios que você SÓ PODE E DEVE RESOLVER COM O CONTEUDO DO CAPITULO
Isso é, você não pode usar charAt, nem Array nem nada para resolver o seguinte (ainda nao tive essas matérias de matemática, talvez isso esteja dificultando meu raciocínio):

O Palíndromo é um número ou uma frase de texto que é lido da mesma forma tanto da esquerda para a direita como da direita para a esquerda. por exemplo, cada um dos inteiros de 5 digitos seguintes é um palíndromo: 12321, 55555, 45554 e 11611. Escreva um aplicativo que lê um inteiro dos digitos e determina se ele é ou não um palíndromo. Se o número não for de 5 digitos, exiba um diálogo de mensagem de erro para indicar o problema ao usuário. Quando o usuário fechar o diálogo de erro, permita que o usuário digite um novo valor.

Essas coisas de exibir diálogos nem me preocupa, acontece que já estou há um tempinho tentando achar uma razão entre os palíndromos. Conto com vocês =)

Muito Obrigado,

Tente usar o operador de resto de divisão (%) e o de divisão (/) em conjunto e sozinhos pra ver os resultados. Aproveita e cria 5 variáveis pra acomodar os resultados.

Bom de dica já basta né ? :stuck_out_tongue: Da uma testada ai que cê consegue mermão.

Por que não experimenta o método String.toCharArray()? Uma sugestão poderia ser assim:

char[] charArray = string.toCharArray();
boolean isPalidromo = true;
for(int i = 0, j = charArray.lenght - 1; (i < j) && isPalindromo; i ++, j --) {
   isPalidromo = (charArray[i] == charArray[j]);
}

Espero que isso ajude,

Eu tentei chegar em uma razão, mas não consgui, qual é o lance?
Você dividir o número e verificar se o resto da diferença por tal número é 0?
Por exemplo se o número é par, o resto da divisão por 2 dele é 0. Então como eu decomponho?
Utilizando % e /

Não pô… assim ó:
12321 % 10 = 1 (no caso o último 1)
12321 % 100 = 21 e 21 / 10 = 2

sacou ?

Mas… antes disso cê tem que verificar se existem realmente 5 dígitos no número que foi fornecido correto ?! :wink: Só não vou falar mais nada senão quem faz sou eu e não você belê ?

É mais fácil do que parece, quando você fizer você vai fazer o famoso: ahhhhhhh p%$#.

Falou mermão.

ps. tem maneiras melhores mas, uma bem simples de entender é essa.

Percorrendo da direita para a esquerda

while(numero > 0) {
  int proximoDigito = numero % 10;
  numero = numero / 10;

  // brinque aqui com o proximoDigito
}