Introducción a Factorial en Java

En este artículo, aprenderemos sobre varias formas de escribir código en Java Programming Language, con el propósito de hacer cálculos factoriales.

Siendo uno de los lenguajes orientados a objetos fácil de usar, Java, es independiente de la plataforma y un lenguaje de programación simple. El compilador e intérprete de Java se desarrollaron con la seguridad como un aspecto importante. Java tiene una amplia gama de aplicaciones.

Factorial, simbolizado como "!" (Signo de exclamación), es una operación matemática de multiplicar un número con todos los números que son más pequeños que él. Por ejemplo, si el número es 5, ¡la salida para factorial será 5! = 5 * 4 * 3 * 2 * 1 = 120.

¿Cómo ejecutar un programa Java?

1. Complete su código y guárdelo como (nombre de archivo) .java

2. Abra la Terminal y ejecute el siguiente comando java.

  • a. javac (nombre de archivo) .java

3. El comando anterior generará un archivo de clase.

4. Ahora ejecute el archivo de clase.

  • a. java (nombre de archivo)

Cálculo de factorial usando varios métodos

Ejemplo 1: programa factorial en Java utilizando el método básico

En el futuro, ahora escribiremos un programa Java simple para el cálculo factorial.

public class Factorial
(
public static void main(String args())
(int i, fact=1;
int number=5;
for(i=1;i<=number;i++)
(
fact=fact*i;
)
System.out.println("Factorial of "+number+" is: "+fact);
)
)

Guarde el código anterior con cualquier nombre de archivo y extensión .java.

Explicación del código:

Comenzó con dos variables "i" y "fact", con valor 1, luego "number" con 5, que es nuestro número para calcular el factorial. Entró en For Loop, siguió aumentando el valor de i hasta que lo igualamos con el número, es decir, 5. Mientras se incrementa, cada vez que aumenta el valor de hecho, se multiplica y se le asigna un nuevo valor.

Salida :

Ejemplo 2 - Programa factorial en Java usando la entrada del usuario

Otro método comúnmente utilizado es cuando solicitamos un número de entrada del usuario, para el cálculo en lugar de predefinirlo.

Consulte el siguiente código para el cálculo basado en la entrada del usuario:

import java.util.Scanner;
class Facto(
public static void main(String args()) (
int q, a, fact = 1;
System.out.println("Please Enter a number:");
Scanner in = new Scanner(System.in);
q = in.nextInt();
if ( q < 0 )
System.out.println("Please enter a number greater than 0:");
else (
for ( a = 1 ; a <= q ; a++ )
fact = fact*a;
System.out.println("Factorial of "+q+" is = "+fact);
)
)
)

Guarde el código anterior como lo hicimos para el ejemplo anterior.

Explicación del código:

La principal diferencia entre el ejemplo anterior y el anterior es la entrada del usuario, el resto es el mismo. El código pedirá que se calcule un número, luego, si el número ingresado por el usuario es Negativo que está en “-”, menos, le indicará “Ingrese un número mayor que 0:”, lo cual es obvio ya que Factorial no puede ser calculado para el número negativo. Ahora, aceptará un número positivo y procederá con el cálculo del factorial y luego imprimirá la salida como se muestra en la imagen a continuación.

Salida :

Ejemplo 3: programa factorial en Java utilizando el método de recursión

La recursión es una de las herramientas más útiles en el mundo de la programación. La recursión básicamente significa reutilizar la función. Por lo tanto, no tendremos que definir un número adicional de variables aquí, lo que significa que solo tendremos dos variables o menos.

La razón principal para implementar Recursion es el poder de reducir la longitud del código y reducir elegantemente la complejidad de tiempo de un programa. El método de recursión, con sus ventajas, tiene algunas desventajas que podrían tener un gran impacto a largo plazo.

Desventajas

Desventajas con recursividad:

  • Básicamente, es bastante difícil depurar el código de recursión y rastrearlo para cualquier paso con un error.
  • Aparte de eso, la recursión usa más memoria, ya que usa Stack para realizar la tarea, donde sigue sumando la pila con una nueva llamada recursiva.
  • Y, si no se implementa sabiamente, Recursion puede ralentizar la función.
  • StackOverflowException: los métodos recursivos a menudo lanzan esta excepción debido al uso excesivo de la pila.

Consulte el siguiente código:

public class FactorialExample2 (
static int factorial(int n)(
if (n == 1)
return 1;
else
return(n * factorial(n-1));
)
public static void main(String() args) (
System.out.println("Factorial of 5 is: "+factorial(5));
)
)

Guarde y compile el programa como lo hicimos anteriormente.

Explicación del código:

El código anterior comienza con una única variable int, comprueba si es igual a 1, en caso afirmativo, devuelve uno, ya que el factorial para 1 es 1. Si no es igual a 1, continúa con la función de recursión. Nuestro valor int, por ejemplo, es 5, por lo que será como "5 * factorial (5-1)", aquí se llama factorial por segunda vez, que es otra llamada. Luego regresa nuevamente con un valor int más nuevo, que es 4, “4 * factorial (4-1)”, ahora será la tercera llamada al método de recursión. Ahora, el valor int más nuevo es 3, que significa "3 * factorial (3-1)", ahora será la cuarta llamada, y el valor será 2, que significa "2 * factorial (2-1)". En la próxima llamada recursiva, el valor int será uno, lo que terminará la función aquí. Mientras se realizaban todas las llamadas, su valor se guardaba en una Pila, que es un método LIFO. Entonces, para la Salida final, el resultado será “5 * 4 * 3 * 2 * 1 = 120”

En comparación con otros métodos, la recursión es bastante difícil de entender e implementar, pero si se entiende bien y se implementa sabiamente, es una buena herramienta.

Salida :

Se recomienda encarecidamente utilizar Recursion, solo en el caso, donde escribir un código iterativo puede ser bastante complejo.

Ahora que hemos aprendido varios métodos para implementar cálculos factoriales en Java, exploremos una función incorporada que hace el mismo trabajo, en una sola línea.

Ejemplo 4 - Programa factorial en Java usando la función incorporada

*) IntMath

Entendiendo la necesidad de operaciones aritméticas sobre un valor, se escribieron algunas funciones específicas para ciertos tipos de valores, veremos el valor del tipo Entero en funcionamiento.

IntMath es una clase para cálculos aritméticos en un valor int. La clase IntMath viene con una gama de operaciones aritméticas, incluida la factorial.

Sintaxis :

factorial (int n)

Conclusión - Factorial en Java

Comenzamos con una introducción a Java y cómo ejecutar un programa Java. Luego aprendimos sobre el cálculo factorial y varios métodos, incluida la recursividad, para lograrlo.

Hacia el final, aprendimos sobre IntMath, una función Java, enfocada principalmente en operaciones aritméticas. Java es un lenguaje de programación ampliamente utilizado, viene con muchas características, en este artículo aprendimos sobre los cálculos factoriales en Java, que es un aspecto pequeño.

Artículos recomendados

Esta es una guía de Factorial en Java. Aquí discutimos cómo ejecutar el programa Java junto con sus métodos. También puede consultar los siguientes artículos para obtener más información.

  1. Prueba de marcos para Java
  2. Hilo Ciclo de vida en Java
  3. Variables en Java
  4. Anotaciones Java
  5. Matrices en programación Java
  6. Factorial en C #