Cita:  
					Iniciado por aldo_rengo  
  hola me ayudan a entender que es lo que sucede.. aqui...
    Código PHP:
     
 /* Ejemplo - aprenderaprogramar.com */
 
//Clase que permite elevar un número entero m a otro número entero n y obtener un resultado
 
public class Exponenciador {
 
//Constructor
 
     public Exponenciador () {
 
        //Nada que declarar
 
    }
 
    //Método 1 para calcular la potencia
 
    public int potenciaIterando (int m, int n) {
 
        int resultado = 1;
 
        for (int i=1; i<=n; i++) {
 
            resultado = resultado * m;           
 
        }
 
        return resultado;
 
    } //Cierre del método
 
    //Método 2 para calcular la potencia
 
    public int potenciaConRecursion (int m, int n) {
 
        if (n==0) { return 1;
 
        } else  { return m * potenciaConRecursion (m, n-1); }
 
    } //Cierre del método
 
} //Cierre de la clase 
    
  no entiendo cuando usa este metodo "potenciaConRecursion" es un poco confuso..
supongamos que los parametros son 2 y 3 
claramente el resultado da 8.
entra primero por el ELSE,   como el n no es cero es "3"
y devuelve... 2 x  ? 
llama de nuevo al metodo  con  potenciaConRecursion (2, 2)...no?
   Exacto, llama de nuevo al método con 
potenciaConRecursion(2, 2), de eso trata la recursividad.
Viéndolo matemáticamente, para calcular 2³ el método potenciaConRecursión lo haría así:
Primero el método va entrando recursivamente hasta obtener un valor:
2³ = 2 x 2²
2² = 2 x 2¹
2¹ = 2 x 2⁰
2⁰ = 1 
y luego "sale", a partir del valor encontrado (2⁰ = 1), y lo utiliza recursivamente: 
-> 2¹ = 2 x 2⁰ = 2 x 1 = 2
-> 2² = 2 x 2¹ = 2 x 2 = 4
-> 2³ = 2 x 2² = 2 x 4 = 8 
No es muy necesario en este caso, te recomiendo revisar la Sucesión de Fibonacci y el código recursivo para calcular un término de esa sucesión. Ahí lo verás más claro y más útil.