Estructura de Datos
Recursividad
10/09/2015
Qu es la recursividad?
Es una tcnica utilizada en programacin que nos permite que un bloque de
instrucciones se ejecute un cierto nmero de veces (el que nosotros
determinemos). A veces es algo complicado de entender, pero no os preocupis.
Cuando veamos los ejemplos estar clarsimo. En Java, como en otros muchos
lenguajes, los mtodos pueden llamarse a s mismos. Gracias a esto, podemos
utilizar a nuestro favor la recursividad en lugar de la iteracin para resolver
determinados tipos de problemas.
Se utiliza para realizar una llamada a una funcin desde ella misma, de all su
nombre. El ejemplo ms utilizado por su fcil comprensin es el clculo de
nmeros factoriales. El factorial de 0 es, por definicin, 1. Los factoriales de
nmeros mayores se calculan mediante la multiplicacin de 1 * 2 * ...,
incrementando el nmero de 1 en 1 hasta llegar al nmero para el que se est
calculando el factorial.
Un algoritmo recursivo es un algoritmo que expresa la solucin de un
problema en trminos de una llamada a s mismo. La llamada a s mismo se
conoce como llamada recursiva o recurrente.
#include <iostream>
#include <cstdlib>
using namespace std; int Factorial(int n);
int main(){
int valor;
system("clear");
cout << "Introduzca numero a calcular: "; cin >> valor;
cout << "\nEl Factorial de " << valor << " es: " << Factorial(valor) << endl;
return 0;
}
int Factorial(int n){
if (n < 0){
cout << No existe el factorial de un numero negativo.\n;
}else if(n < 2){ return 1;
}else
return n * Factorial(n-1);
}