Ejemplos de métodos recursivos
El método recursivo siguiente imprime números sucesivos desde i hasta n (los parámetros definidos), para el caso de la llamada, el método imprime desde el 1 hasta el 10 (los argumentos ingresados).
public class Main {
public static void main(String[] args) {
//LLamada del metodo recursivo
recursividad1(1, 10);
}
//Definicion del método recursivo
public static void recursividad1(int i, int n){
if (i <= n) {
System.out.println(i);
recursividad1(i+1, n);
}
}
}
El siguiente método recursivo imprime números sucesivos desde i hasta n pero con un intervalo establecido (los parámetros definidos), para el caso de la llamada, el método imprime 10 números sucesivos de 2 en 2, ya que el intervalo ingresado es el número 2 (tercer argumento).
public class Main {
public static void main(String[] args) {
//LLamada del metodo recursivo
recursividad2(1, 10, 2);
}
//Definicion del método recursivo
public static void recursividad2(int i, int n, int intervalo){
if (i <= n) {
System.out.println(i*intervalo);
recursividad2(i+1, n, intervalo);
}
}
}
En el siguiente método recursivo se realiza el recorrido de un arreglo y muestra los datos que contiene. Lo parámetros definidos son el índice desde el cual sea realiará el recorrido y el arreglo de datos.
public class Main {
public static void main(String[] args) {
//LLamada del metodo recursivo
recursividad2(1, 10, 2);
}
//Definicion del método recursivo
public static void recursividad2(int i, int n, int intervalo){
if (i <= n) {
System.out.println(i*intervalo);
recursividad2(i+1, n, intervalo);
}
}
}
En el siguiente método recursivo obtiene la sumatoria de un arreglo llamado datos, al ser un método que retorna un valor, la llamada del método le es asignada a la variable suma, para posteriormente ser mostrada.
public class Main {
public static void main(String[] args) {
int datos[] = {6,3,5,1,8,3};
int suma = sumaRecursiva(0, datos, 0);
System.out.println("Suma del arreglo:"+suma);
}
public static int sumaRecursiva(int i, int datos[], int sum){
if (i < datos.length) {
return sumaRecursiva(i+1, datos, sum+datos[i]);
}
return sum;
}
}
En el siguiente método recursivo se obtiene el promedio de una matriz llamada datos, al ser un metodo que retorna un valor, la llamada del método le es asignada a la variable promedio, para posteriormente ser mostrada.
public class Main {
public static void main(String[] args) {
double datos[][] = {
{6,8,10},
{10,8,9},
{7,9,10}
};
double promedio = promedioMatriz(datos, 0.0, 0,0);
System.out.println("Suma del arreglo:"+promedio);
}
public static double promedioMatriz(double arr[][], double sumatoria, int i, int j){
if (i < arr.length) {
if (j < arr[0].length) {
sumatoria += arr[i][j];
return promedioMatriz(arr, sumatoria, i, j+1);
}else{
return promedioMatriz(arr, sumatoria, i+1, 0);
}
}else{
return sumatoria/(arr.length * arr[0].length);
}
}
}