48. Números inversos

48. Números inversos

Descripción del Título

Voltea el entero x de 32 bits dado.
Ejemplo 1: x = 123, devuelve 321
Ejemplo 2: x = -123, devuelve -321

¿Ha notado que el número entero después de voltear puede desbordarse? Dado que el dado es un entero de 32 bits, su rango de valores es −2 ^ {31}, 2 ^ {31} - 1. Flip puede causar un desbordamiento, si el resultado después de la inversión se desborda, devuelve 0.

ingresar

-123

valor de retorno

-321

análisis

1. Para invertir los números, primero debe obtener el número de cada dígito y luego puede invertir

2. Luego, obtenga el último dígito primero y tome el resto de los dígitos ingresados ​​para obtener el último dígito

3. Luego agréguelo al nuevo resultado, porque es una inversión, así que multiplique el original por 10 y agregue el número recién obtenido.

4. Determine si se desborda, si el nuevo valor menos el recién obtenido dividido por 10 no es igual a res, significa desbordamiento

Código

  public static int reverse(int x) {
    
    
    		int res = 0;
    		while (x != 0) {
    
    
    			int tail = x % 10;
    			int newRes = res * 10 + tail;
    			if ((newRes - tail) / 10 != res) {
    
    
    				return 0;
    			}
    			res = newRes;
    			x = x / 10;
    		}
    		return res;
    	}

Supongo que te gusta

Origin blog.csdn.net/qq_45874107/article/details/115328826
Recomendado
Clasificación