Dividir sin dividir con Java

18/Feb/2016 Java 2 Comentarios

Un problema muy sencillo de programación, y que nos habéis preguntado en los foros, que nos puede dar algún quebradero de cabeza es el de dividir sin dividir con Java. Es decir, cómo podemos obtener el cociente y el resto de una división sin utilizar el operador de división (/), ni el operador de resto(%).

En una operación normal tendríamos la siguiente operación:

  1. int cociente = dividendo/divisor;
  2. int resto = dividendo%divisor;

Pero ahora no utilizaremos los operadores. Lo primero que tenemos que recordar es que una división es un conjunto de restas. De tal manera que el cociente será el número de restas que hagamos del divisor sobre el dividendo y su resultado hasta que la resta sea 0 o menor de 0.

Es decir, si tenemos que dividir 13 entre 2 tendríamos la siguiente secuencia:

13/2
13 - 2 = 11
11 - 2 = 9
9 - 2 = 7
7 - 2 = 5
5 - 2 = 3
3 - 2 = 1
1 - 1 = -1

El cociente será el número de restas ejecutadas, en este caso 6. Y el resto será el valor de la última resta, pero en positivo.

Cuando vayamos a codificar el dividir sin dividir con Java lo primero que haremos será definir el dividendo y divisor.

  1. int dividendo = 13;
  2. int divisor = 2;

Por otro lado definimos una variable que sea el cociente y que incrementaremos en cada resta.

  1. int cociente = 0;

Y ahora empezamos a realizar las restas mediante un bucle, mientras el resultado sea mayor de 0.

  1. while (dividendo >0) {
  2. cociente++;
  3. dividendo = dividendo-divisor;
  4. }

Ya solo nos quedará el mostrar el cociente y el resto.

  1. System.out.println("Cociente " + cociente);
  2. System.out.println("Resto " + (-dividendo));

Y ya habremos conseguido el dividir sin dividir con Java.

Vídeos sobre Java


Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

2 comentarios en “Dividir sin dividir con Java”

Víctor Cuervo

marcos

No esta bien, para empezar pone que 13-2=9 cuando 13-2=11. Si compruebas con la maquina virtual en este ejemplo concreto saca el cociente=7 y resto=1.

Víctor Cuervo

Víctor Cuervo

Había una errata en la que se había comido una línea. Es:

13-2 = 11
11-2 = 9
...

Gracias por el aviso. Ya está corregido.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*