sábado, 7 de enero de 2012

Factorial recursivo en Java

Este es un metodo de un algoritmo recursivo que calcula el factorial:


   int factorial(int n){
      if(n==0) return 1;   //AXIOMA
      else return n*factorial(n-1);  //FORMULA RECURSIVA
   } 

Recursividad directa: cuando un método P contiene dentro de si un llamado a si mismo.

Recursividad indirecta: cuando un método  contiene dentro de si un llamado a otro método Q que contiene llamados (directos o indirectos) a P.

Variables locales

Si un método recursivo utiliza variables locales, estas serán creadas para cada invocación del método. Las variables locales (y sus valores) serán visibles sólo en la correspondiente invocación (cada invocación del procedimiento tiene su propia área de datos).
Cada invocación a un procedimiento requiere de cierto  espacio de memoria, el que sólo es liberado al terminar la ejecución de éste. El espacio de memoria disponible es limitado.
Los métodos recursivos son normalmente más lentos y consumen más memoria que sus equivalentes no recursivos.

Fuente: Franco Guidi Polanco

No hay comentarios:

Publicar un comentario