Recursión de funciones de programación
Utiliza la recursividad para calcular n! Se puede expresar mediante la siguiente fórmula:
n! =1 (n=0, 1)
n×(n-1)! (n & gt1)
Según la fórmula, se puede programar de la siguiente manera:
long ff (entero)
{
Long f;
p>If (n & lt0) printf (" n & lt;0, error de entrada"); = = 1)f = 1;
else f = ff(n-1)* n;
Devuelve (f); >
Main()
{
int n;
Long y
printf("\nIngrese un número entero: \n");
p>
scanf("%d ",&n);
y = ff(n);
printf( "%d!=%ld ",n, y);
}
La función ff dada en el programa es una función recursiva. Después de que la función principal llama a ff, ingresa a la función ff para su ejecución. Si n
Demos otro ejemplo para ilustrar este proceso. Supongamos que la entrada al ejecutar este programa es 5, es decir, ¡encuentre 5! . La declaración de llamada en la función principal es y = ff (5). Después de ingresar a la función ff, dado que n = 5 no es igual a 0 o 1, se debe ejecutar f = ff (n-1) * n, es decir, f = ff (5-1) * 5. Esta declaración realiza una llamada recursiva a ff, que es ff(4).
Después de cuatro llamadas recursivas, el valor del parámetro formal de la función ff pasa a ser 1, por lo que las llamadas recursivas ya no continúan y la función de llamada principal se devuelve capa por capa. El valor de retorno de la función de ff(1) es 1, ff(2) es 1*2=2, ff(3) es 2*3=6, ff(4) es 6*4=24, ff(5) es 24*.