Potencia de un numero programacion recursiva (Java)



Problema:
Encuentra un método que permita definir la potencia de un numero. Los datos son a y b y lo que se desea es calcular a elevado a la b.

Para poder solucionar este problema  es necesario determinar el caso base, de manera intuitiva podemos darnos cuenta que el caso base esta dado por b debido a que este valor indica las veces que se va a repetir el ejercicio con lo que obtendríamos el siguiente código:


   public static void main(String[] args) {

        System.out.println(potencia(4, 3));
    }

    public static int potencia (int a, int b){
        if (b==0){
            return 1; //caso base
        }
        return a* potencia(a,b-1);       
    }  


el resultado de este ejercicio es de 64.

si hacemos un desgloce del ejercicio nos podemos dar cuenta de como se llega a este resultado



public static int potencia ( 4, 3){
        if (b==0){
            return 1; //caso base
        }
        return 4* potencia(4,3-1); //retorna 64      
    }  
                          
public static int potencia ( 4, 2){
        if (b==0){
            return 1; //caso base
        }
        return 4* potencia(4,2-1); //retorna 16       
    }
public static int potencia ( 4, 1){
        if (b==0){
            return 1; //caso base
        }
        return 4* potencia(4,1-1); //retorna 4       
    }

public static int potencia ( 4, 0){
        if (b==0){
            return 1; //caso base //retorna 1
        }
        return 4* potencia(4,1-1);       
    }







Comentarios

Entradas populares de este blog

Calculo Numérico (Oscar Zabalaga Montaño)

Teoria de Automatas (Victor Hugo Montaño)