Ejemplos de Recursividad en Java

maxresdefaultRecursividad en Java

Dado un grupo de letras, imprimir todos los acrónimos posibles. Todas las combinaciones donde no se repitan las letras.

Por ejemplo: {a,b,c} => abc; acb; bac; bca; cab; cba

 


public class Combina {
   
    public static void main(String[] args) {
            String cadena = "ABC";
            combinaciones(cadena);
    }

    public static void combinaciones(String str) {

       // Inicialmente se llama a la función sin prefijo y con la cadena completa
        combinaciones("", str); 
    }

    private static void combinaciones(String prefijo, String str) {
            int n = str.length();
            String b,c;
            char a;
           
            if (n == 0)
                System.out.println(prefijo);
            else {
                    for (int i = 0; i < n; i++){ 
                       // Se vuelve a llamar a la función con el prefijo (inicialmente null) más la siguiente letra de la cadena.
                      //
                       a = str.charAt(i); 
                        b = str.substring(0, i);
                        c = str.substring(i+1, n);
                       
                        combinaciones(prefijo + str.charAt(i), str.substring(0, i) + str.substring(i+1, n));
                    }
                }
    }
}

Multiplicación Rusa en forma recursiva

int mulRusa(int A, int B) {

              if(A==1)
                           return (B); 
             if(A%2!=0)
                          return(B+mult_rusa( A/2 , B*2)); 
             else
                          return(mult_rusa( A/2 , B*2));
}

About AVB

Check Also

Concurrency en Golang Go mediante Workers

El lenguaje de programación GO es particularmente amigable para desarrollar programas con concurrencia, es decir, …

Leave a Reply

Your email address will not be published. Required fields are marked *