Descrição do Desafio
Vamos pegar um número inteiro positivo n
, reverter seus dígitos para obter rev(n)
e obter o valor absoluto da diferença desses dois números: |n - rev(n)|
(ou abs(n - rev(n))
).
Exemplo:
n = 5067
rev(n) = 7605
|n - rev(n)| = |5067 - 7605| = |-2538| = 2538
Depois de repetir essa operação várias vezes, a maioria dos números se tornará 0
(terminando assim o loop) ...
5067 -> 2538 -> 5814 -> 1629 -> 7632 -> 5265 -> 360 -> 297 -> 495 -> 99 -> 0
... embora alguns números (como 1584
) fiquem presos em um loop infinito:
1584 -> 3267 -> 4356 -> 2178 -> 6534 -> 2178 -> 6534 -> 2178 -> 6534 -> ...
^ infinite loop starts here
Seu trabalho é determinar se um número inteiro fica preso em um loop infinito.
Descrição da entrada
Um número inteiro positivo.
Descrição da saída
Um valor verdadeiro ( True
, 1
) se o número ficar preso em um loop infinito, um valor falso ( False
, 0
) caso contrário.
Notas
- Zeros à direita devem ser omitidos. ie
rev(5020) = 205
. - Lembre-se de que isso é código-golfe , portanto, faça seu código o mais curto possível!
- Sequência relevante: A072140