Recursividad c++
Ing. Ernesto González Cárdenas
Definición
Se dice que una función es recursiva
cuando se define en función de si misma.
No todas la funciones pueden llamarse a si mismas,
deben
estar
diseñadas
especialmente para que sean recursivas,
de otro modo podrían conducir a ciclos
infinitos, o a que el programa termine
inadecuadamente.Recursividad en C++
Cuando se llama a una función, se crea un
nueva instancia de variables locales, si la
función hace una llamada a si misma, se guardan sus variables y parámetros en la pila, y
la nueva instancia de la función trabajará con
su propia copia de las variables locales, cuando
esta segunda instancia de la función retorna,
recupera las variables y los parámetros de la
pila y continua la ejecución en el punto en que
había sido llamada.
Factorial
El factorial se simboliza como n!, se lee como "n factorial", y la definición es:
n! = n * (n1) * (n2) * ... * 1
No se puede calcular el factorial de números
negativos, y el factorial de cero es 1, de modo
que una función bien hecha para cálculo de
factoriales debería incluir un control para esos
casos.
Ejemplo Calculo del Factorial
#include
/* Función recursiva para cálculo de factoriales */ int factorial(int n)
{
if(n 1)
return n*factorial(n1);
/* Recursividad */
return 1; /* Condición de terminación, n == 1 */
}
void main()
{
int x, val=1;
printf("Dame el numero del factorial: "); scanf("%i",&x);
printf("%i",factorial(x));
getch();
}
Ejercicio # 1 Acumulador
Desarrollar un programa que calcule un contador que
se incremente en una unidad.
y=y+1 Utilizando un algoritmo recursivo
Acumulador recursivo
#include
int sumauno(int n, int valor); /* funcion recursiva */
void main()
{ int x, val=1;
printf("Dame el valor de x: "); ...
Regístrate para leer el documento completo.