Java básico 052. Función, obtener cociente y resto sin utilizar operaciones de división.

Ejercicio: Diseñe un programa que lea del teclado dos números enteros y escriba en pantalla el cociente y resto de la división de ambos números, teniendo en cuenta que no se permite utilizar las operaciones de división y resto (/, %), por lo que se deberá realizar mediante restas sucesivas.
Ejemplo: 7 / 2 = (7 -2 = 5; 5 -2 = 3 ; 3 -2 = 1 =) Cociente = 3 ; Resto = 1.
Código Java
import java.util.Scanner;

/**
*
* @author Ariel
*/

public class JavaCal {

/**
* @param args the command line arguments
*/

public static void main(String[] args) {
//Declaramos dos variables enteras.
int dividendo;
int divisor;
//Utilizamos Scanner para capturar valores desde el teclado.
Scanner num = new Scanner(System.in);
//Utilizamos "try" para controlar posibles errores de entrada de datos.
try {
//Procedemos a capturar los valores.
System.out.print("Ingresa el dividendo: ");
dividendo = num.nextInt();
System.out.print("Ingresa el divisor: ");
divisor = num.nextInt();
//Después de obtener los datos llamamos nuestra función.
calculo(dividendo, divisor);
} catch (Exception e) {
System.out.println("Error de datos: " + e);
}
}
//Creamos nuestra función sin retorno.
//La función requerirá 2 parámetros.
static void calculo(int dividendo, int divisor){
int resto;
int cociente = 0;
//Condición en caso que número sea negativo o cero.
if(divisor <= 0){
System.out.println("No se puede realizar operación.");
}
else{
//Arreglos para mejorar el formato de impresión.
int y = dividendo - divisor;
System.out.println("(" + dividendo + "/" + divisor + ")" );
System.out.print("(" + dividendo + "-" + divisor + "=" + y + ")" );
resto = dividendo;
//Un bucle para realizar los cálculos necesarios.
while (resto >= divisor) {
resto -= divisor;
int var = resto - divisor;
++cociente;
//Por cada ciclo imprimimos los valores intermedios.
if(resto > divisor){
System.out.print("("+ resto + "-" + divisor + "=" + var + ")");
}

}
//Al termina el ciclo nos retorna los valores finales.
System.out.println("\nCociente: " + cociente + " ; " + "Resto: " + resto);
}
}
}

2 comentarios :