Programa
que calcula el resto de la división de dos números enteros de forma
recursiva.
El
planteamiento para resolverlo es el siguiente:
Caso
Base: Si el dividendo es menor que el divisor, el resto es el
dividendo.
Si
el caso base no se cumple, entonces se resta el dividendo y el
divisor. A este resultado se le vuelve a restar el divisor. Este
proceso se repite hasta que se llega al caso base, es decir, cuando
el resultado obtenido al restar sea menor que el divisor.
Con
un ejemplo quedará más claro:
Supongamos
que queremos calcular el resto de dividir 10 entre 3:
Restamos
10 – 3 Resultado 7
Restamos
7 – 3 Resultado: 4
Restamos
4 -3 Resultado: 1
Como
1 es menor que 3 no se realiza la operación. El resto de la división es 1.
public class EjemploRecursividad {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1, n2;
System.out.print("Introduzca dividendo: ");
n1 = sc.nextInt();
do {
System.out.print("Introduzca divisor (>0): ");
n2 = sc.nextInt();
} while (n1 <= 0);
System.out.printf("%d%%%d = %d %n", n1, n2, restoRecursivo(n1, n2));
}
//método que calcula el resto de la división de forma recursiva
public static int restoRecursivo(int a, int b) {
if (a < b) {
return a;
} else {
return resto(a - b, b);
}
}
}
exelente
ResponderEliminarOe que hace por acá
EliminarExcelente GRUPO VALLEJITO
ResponderEliminarERROR EN TU MÉTODO RECURSIVO
ResponderEliminarCAMBIAR
return resto(a - b, b);
POR:
return restoRecursivo(a - b, b);
gracias
ResponderEliminar