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);
        }
    }
}