Reto División Euclídea en Java

Hola querido lector, hoy he querido hacer un reto de programación de #AceptaElReto, es sobre la división euclídea, básicamente agarrar el resto y el cociente, y mostrarlo. La división euclídea es básicamente (cociente*divisor)+resto=dividendo, la verdad un reto bastante entretenido, os dejo el enunciado:

División euclídea


Cuando en la escuela nos enseñan a dividir, nos explican qué son el dividendo, el divisor, el cociente y el resto. Intuitivamente aprendemos que la división sirve para repartir un número determinado de cosas (dividendo) entre una serie de personas (divisor). El resultado de la operación nos indica a cuántas cosas tocan cada uno (cociente) y cuántas sobran (resto).
Esa es la que se llama división euclídea (o entera) de números naturales, es decir números no negativos. Enseguida aprendemos, además, que no tiene sentido repartir algo entre cero personas y por lo tanto el divisor no puede ser nulo.
Formalmente, la división euclídea entre dos números enteros a y b (siendo b un número distinto de cero) calcula un cociente q y un resto r asociados a esos a y b, que cumplen que a = b × q + r, y donde el resto r es siempre un entero no negativo, 0 ≤ r < |b|.
Aunque la definición es fácil de entender y aplicar cuando trabajamos con números positivos, hay que pensarlo con un poco más de cuidado antes de contestar cuál es el resultado de la división cuando el dividendo o el divisor son negativos.

Entrada

La entrada comienza con un número indicando la cantidad de casos de prueba que deberán procesarse. Cada caso de prueba aparece en una línea independiente y está compuesto por dos números enteros, primero el dividendo y luego el divisor. Ninguno será mayor que 10.000 en valor absoluto.

Salida

Para cada caso de prueba, el programa escribirá en una línea el cociente y el resto de la división euclídea separados por un espacio. En el caso de que el divisor sea 0 se escribirá únicamente DIV0.

Aquí esta nuestro código:

        try {
            int dividendo, divisor, resto, cociente;//cociente no puede ser cero
            Scanner sca = new Scanner(System.in);
            String str;
            String arrStr[];
            System.out.println(«Escriba el dividendo y el divisor:»);
            str = sca.nextLine();
            arrStr = str.split(» «);

            dividendo = Integer.parseInt(arrStr[0]);
            divisor = Integer.parseInt(arrStr[1]);
            if (dividendo == 0 || divisor == 0) {
                throw new Exception(«DIV0»);
            }
            cociente = dividendo / divisor;
            resto = dividendo % divisor;
            System.out.println(«Cociente Resto»);
            System.out.println(cociente + » » + resto);
        } catch (Exception ex) {
            if (ex.getMessage().equals(«DIV0»)) {
                System.out.println(ex.getMessage());
            } else {
                System.out.println(«Debes poner un número entero»);
            }
        }

Esto ha sido todo por este tutorial, si te ha gustado y quieres recibir contenido similar, puedes apuntarte a mi página en Facebook o seguirme en twitter, un saludo y hasta la próxima.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.