miércoles, 11 de febrero de 2009

Algoritmo Factorial


Algoritmo Factorial
Antes de desarrollar el algoritmo hay que entender que es un factorial:
Se llama n factorial o factorial de n al producto de todos los naturales desde 1 hasta n, es decir:
n! = n * n-1... * 4 * 3 * 2 * 1
El factorial de 0 se define como:
0! = 1
Por lo que podemos decir que:
n! = n * (n-1)!
Por ejemplo el factorial de 5 seria:
5! = 5 * 4!
4! = 4 * 3!
3! = 3 * 2!
2! = 2 * 1!
1! = 1 * 0!
0! = 1
Entonces:
1! = 1 * 1 = 1
2! = 2 * 1 = 2
3! = 3 * 2 = 6
4! = 4 * 6 = 24
5! = 5 * 24 =120
.
.
Ahora vamos a construir el Algoritmo Recursivo:
.
INICIO
LEA (n)
Fact(0)= 1
MIENTRAS QUE (n > 0) HAGA
Fact = n * Fact(n-1);
FIN MIENTRAS QUE
ESCRIBA (Fact)
FIN
.
Este algoritmo va a realizar un procedimiento como el que realizamos anteriormente, con lo que podemos calcular el factorial de cialquier numero n.

Java


public class Factorial
Recursivo {

public Factorial
Recursivo { //Contructor de la Clase

FactorialRecursivo Factorial = new FactorialRecursivo();
f = Factorial.factorial(n); //Recibe el numero como parametro
System.out.println("El Factorial del numero " + n + " es " + f); // Imprime el valor del factorial
}

public double factorial(double n) {

if (n <= 2) {
return n; // Si el numero es menor o igual a 2, retorna n
}
else {
return n * factorial(n-1); //Sino, implementamos el algoritmo mencionado anteriormente
}
}
//n sera enviado como parametro al constructor, que se encaragara de impirmir e

}