Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/03/2015, 12:15
sixtoex
 
Fecha de Ingreso: noviembre-2014
Mensajes: 34
Antigüedad: 7 años, 10 meses
Puntos: 1
Dudas recursividad JAVA

Bueno gente, antes que nada muchas gracias por la ayuda en los anteriores problemas, estoy agradecido que pierdan minutos de su vida en mi.

Ahora pasando a un tema que me esta volviendo loco jejeje..

Es la primera vez que veo recursividad y yo solo pensaba que solo repetía código un bucle.

Pero veo que no...

Entonces esto me mosquea mucho...

A ver un método recursivo es hacer un ejercicio mas chico, hasta llegar a la base?

Por ejemplo el factorial de un número

3! = 3 * 3 * 3

Con un bucle for lo haría así:

Código Java:
Ver original
  1. Public int GetFactorialConCiclo(int n){
  2. int acomulado = 1;
  3. for(int i = n; i >= 1;i--){
  4. acomulado * = 1;
  5. }
  6. return acumulado;
  7.  
  8. }


Pero no sabía yo que se podía hacer esto sin usar un solo bucle, solamente un método y llamandolo en el método princiapal


Que sería asi:

Código Java:
Ver original
  1. public int GetFactorialRecursivo(int n){
  2. if(n == 0){
  3. return 1;
  4. }
  5. else{
  6. return n * GetFactorialRecursivo(n-1);
  7. }
  8. }

El segundo es mas limpio, pero tengo muchas dudas

No entiendo la recursividad, tampoco entiendo por que el método actúa como un bucle,tampoco entiendo como sabe el mismo método que tiene que llegar hasta el final del numero factorial...

Si me lo explicas te estaré agradecido, si vas a poner un enlace a otra dirección web, porfavor que sea en español

Gracias.