Factorial de un entero no negativo, es la multiplicación de todos los enteros menores o iguales a n. Por ejemplo, el factorial de 6 es 6*5*4*3*2*1, que es 720.
recursivo:
Java
// Java program to find factorial of given number class Test { // method to find factorial of given number static int factorial(int n) { if (n == 0) return 1; return n*factorial(n-1); } // Driver method public static void main(String[] args) { int num = 5; System.out.println("Factorial of "+ num + " is " + factorial(5)); } }
Complejidad de tiempo : O(n)
Espacio Auxiliar : O(n)
Solución iterativa:
Java
// Java program to find factorial of given number class Test { // Method to find factorial of given number static int factorial(int n) { int res = 1, i; for (i=2; i<=n; i++) res *= i; return res; } // Driver method public static void main(String[] args) { int num = 5; System.out.println("Factorial of "+ num + " is " + factorial(5)); } }
Complejidad de tiempo : O(n)
Espacio Auxiliar : O(1)
Solución de una línea (usando el operador ternario):
Java
// Java program to find factorial // of given number class Factorial { int factorial(int n) { // single line to find factorial return (n == 1 || n == 0) ? 1 : n * factorial(n - 1); } // Driver Code public static void main(String args[]) { Factorial obj = new Factorial(); int num = 5; System.out.println("Factorial of " + num + " is " + obj.factorial(num)); } } // This code is contributed by Anshika Goyal.
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(n)
Las soluciones anteriores causan desbordamiento para números pequeños. Consulte factorial de gran número para obtener una solución que funcione para grandes números. ¡ Consulte el artículo completo sobre Programa para factorial de un número para obtener más detalles!
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA