Mod de Números Negativos en Java
-
Obtenga la modificación de los números negativos usando el operador
%
en Java -
Obtenga la Mod de Números Negativos usando el Método
floormod()
-
Obtenga la Mod de Números Negativos Usando el Método
Math.abs()
En Java, podemos encontrar el resto de dos números después de la división con la ayuda del operador Modulo o Remainder Operator (%
).
Supongamos que nos dan dos números, A y B, donde A es el dividendo y B es el divisor. Cuando operamos A mod B, obtenemos un Resto cuando A se divide por B.
Si tratamos con números negativos, a veces obtenemos resultados erróneos. Este artículo discutirá diferentes formas de encontrar el mod de números negativos en Java.
Si tenemos números negativos y usamos el operador %
sobre ellos, obtendremos el resultado dependiendo del signo del operando izquierdo. Si tenemos el operando de la izquierda como positivo, obtendremos el resultado como positivo, y si el operando de la izquierda es negativo, obtendremos el resultado como negativo.
Para resolver el problema anterior, podemos encontrar la moda de los números negativos usando el operador %
, el método floorMod()
y el método Math.abs()
. Discutamos cada uno de los enfoques uno por uno.
Obtenga la modificación de los números negativos usando el operador %
en Java
Podemos encontrar la moda del número negativo sumando primero el factor de moda hasta llegar al dominio positivo y luego invocar el operador %
. Con la ayuda de este método, siempre tenemos un factor de modulación mayor que la salida.
Veamos el siguiente código para entender cómo funciona.
public class Main {
public static void main(String args[]) {
int x = -4;
int y = 3;
int res = x % y;
System.out.println("Mod value before operation = " + res);
while (x < 0) x += y;
int mod_res = x % y;
System.out.println("Mod value after operation = " + mod_res);
}
}
Producción :
Mod value before operation = -1
Mod value after operation = 2
Obtenga la Mod de Números Negativos usando el Método floormod()
También podemos encontrar la moda de un número negativo usando el método floorMod()
. Con la ayuda de este método, obtenemos el módulo base de los argumentos int.
Veamos la sintaxis de la función floorMod()
.
Sintaxis:
floorMod(number, mod)
Cuando se invoca la función floorMod()
en un entero negativo, obtenemos la salida con el signo del factor mod. Veamos el siguiente código para entender cómo funciona.
public class Main {
public static void main(String args[]) {
int x = -4;
int y = 3;
int res = x % y;
System.out.println("Mod value before operation = " + res);
int mod_res = Math.floorMod(
x, y); // This will have the output value as positive since the smod factor is positive
System.out.println("Mod value after operation having mod factor as positive = " + mod_res);
x = 4;
y = -3;
mod_res = Math.floorMod(
x, y); // This will have the output value as negative since the mod factor is negative
System.out.println("Mod value after operation having mod factor as negative = " + mod_res);
}
}
Producción :
Mod value before operation = -1
Mod value after operation having mod factor as positive = 2
Mod value after operation having mod factor as negative = -2
Obtenga la Mod de Números Negativos Usando el Método Math.abs()
También podemos encontrar la moda de los números negativos usando el método Math.abs()
.
Realizaremos esta tarea con la ayuda de un operador ternario. Este operador producirá resultados para ambos casos, ya sea que el número sea positivo o negativo.
Veamos el siguiente código para entender cómo funciona.
public class Main {
public static void main(String args[]) {
int x = -4;
int y = 3;
int res = x % y;
System.out.println("Mod value before operation = " + res);
int mod_res = (x < 0) ? (y - (Math.abs(x) % y)) % y : (x % y);
System.out.println("Mod value after operation = " + mod_res);
}
}
Producción :
Mod value before operation = -1
Mod value after operation = 2