El factorial de un entero por encima de cero es el producto de todos los enteros que tienen un valor menor o igual a ese valor.
El factorial de 3 es 3 veces 2 veces 1 o 6. En notación matemática: 3! = 3 * 2 * 1 = 6. La implementación del método realiza el mismo proceso, comienza en el valor actual y lo multiplica por el valor menos uno. El proceso se realiza hasta que el valor actual es 2. No es necesario multiplicar por uno el resultado para devolver.
public class Factorial {
public static long factorial(int number) {
long result = 1;
for (int factor = number; factor >= 2; factor--) {
result *= factor;
}
return result;
}
public static void main(String[] argv) {
int[] tab = {0,1,2,3,4,5,6,7,8,9};
for(int i : tab){
long out = factorial( i );
System.out.println("n = "+ i + " n! = " + out);
}
}
}
Este ejemplo crea una tabla con todos los enteros de 0 a 9. Se repite en todos ellos y llama al método factorial. El resultado del método se escribe en la salida. Por ejemplo, el factorial de 6 es 720.
n = 0 n! = 1 n = 1 n! = 1 n = 2 n! = 2 n = 3 n! = 6 n = 4 n! = 24 n = 5 n! = 120 n = 6 n! = 720 n = 7 n! = 5040 n = 8 n! = 40320 n = 9 n! = 362880