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