Función recursiva y factoriales:


OP @Alecs
Posts: 55
Nivel: 11

El Domingo 17 de Jul, 2011

Estoy mirando una función pero no estoy seguro si la pillo del todo.

[code=javascript]function factorial(numero)
{
if (numero == 1 || numero == 0)
return 1;
else
return numero*factorial(numero - 1);
}

document.write(factorial(4));[/code]

Entiendo todo lo que hace la función y tal, pero esto es lo que no entiendo:

[i]Supóngase la llamada a esta función para N=4, es decir factorial(4). Cuando se llame por primera vez a la función, la variable numero valdrá 4, y por tanto devolverá el valor de 4*factorial(3); pero factorial(3) devolverá 3*factorial(2); factorial(2) a su vez es 2*factorial(1) y dado que factorial(1) es igual a 1 (es importante considerar que sin éste u otro caso particular, llamado caso base, la función recursiva no terminaría nunca de llamarse a sí misma), el resultado final será 4*(3*(2*1)).[/i]

Hilo cerrado por OP @Alecs