Ver Mensaje Individual
  #9 (permalink)  
Antiguo 16/02/2011, 13:01
BoKeRoN18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 208
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: explicacion logica recursividad??

hola muchachos gracias por vuestras explicaciones pero creo que me he perdido un poco mas :S

long int potencia (int b, int e)
{
if (e==1) //pieza 1
{
return b; //caso base
}
else //pieza 2
{
return b*potencia(b,e-1); //paso recursivo
}
}

Voy a tracear un ejemplo:

si e ==3 y b==2
1- entra en el else hace 2*potencia(2,3-1) // pero aqui no devuelve todavia verdad??
2 - rapidamente vuelve al principio de la funcion y ve que todavia no puede entrar a la condicion if por lo que va al else y alli vuelve: return 2*potencia(2,2-1);
3 - ahora vuelve a llamar a la funcion y ahora si entra en el if e==1 y devuelve b y aqui se termina la funcion.

Preguntas si el valor de 'b' no se ha ido acumulando en ningun sitio como devuelve b en el if? porque se supone que en else no llega nunca a devolver ningun valor no? y si es asi donde se acumulan?

nose cada vez me lio mas :S:S:S::S