Tema: número entero inversa
Dado un entero con signo de 32 bits, el número entero se invierte.
Por ejemplo, al revés 321-123 123 -321 al revés
asume que nuestro entorno puede almacenar entero de 32 bits, que es el rango numérico [-231 231 a -1]. Bajo este supuesto, si el desbordamiento de enteros de inversión, se devuelve 0.
pensamiento
Para tomar más de 10 Resolviendo
public int resverse(Integer x){
long result = 0;
while (x != 0) {
result = result * 10 + x % 10;
x /= 10;
}
if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE){
result = 0;
}
return (int) result;
}
Nota: resultado aquí se utiliza para almacenar el resultado de la inversión, el empleo de tipo long. (Si int, cuando x es demasiado grande, habrá un resultado de desbordamiento después de la inversión, por ejemplo, x = 1534236469,
Tras el resultado inverso debe ser 9646324351, pero Integer.MAX_VALUE = 2147483647, lo que resulta en un desbordamiento, el resultado final = 1056389759, no es el resultado que queremos
cuando se utiliza aquí el tiempo, el desbordamiento juez, devuelve un resultado = 0