Header Ads Widget

Ticker

6/recent/ticker-posts

Programa Java para encontrar factorial de un número

En este programa, aprenderá a encontrar el factorial de un número usando for y while loop en Java.
El factorial de un número positivo n viene dado por:
factorial de n (n!) = 1 * 2 * 3 * 4 * ... * n

Ejemplo 1: Encontrar factorial de un número usando for loop

  1. public class Factorial {
  2. public static void main(String[] args) {
  3. int num = 10;
  4. long factorial = 1;
  5. for(int i = 1; i <= num; ++i)
  6. {
  7. // factorial = factorial * i;
  8. factorial *= i;
  9. }
  10. System.out.printf("Factorial of %d = %d", num, factorial);
  11. }
  12. }
Cuando ejecutas el programa, la salida será:
Factorial de 10 = 3628800
En este programa, hemos utilizado bucle para recorrer todos los números entre 1 y el número dado num (10), y el producto de cada número hasta num se almacena en un factorial variable .
Hemos usado mucho en lugar de int para almacenar grandes resultados de factorial. Sin embargo, todavía no es lo suficientemente grande como para almacenar el valor de números más grandes (digamos 100).
Para los resultados que no se pueden almacenar en una variable larga, utilizamos la BigIntegervariable declarada en la java.mathbiblioteca.

Ejemplo 2: Encontrar factorial de un número usando BigInteger

  1. import java.math.BigInteger;
  2. public class Factorial {
  3. public static void main(String[] args) {
  4. int num = 30;
  5. BigInteger factorial = BigInteger.ONE;
  6. for(int i = 1; i <= num; ++i)
  7. {
  8. // factorial = factorial * i;
  9. factorial = factorial.multiply(BigInteger.valueOf(i));
  10. }
  11. System.out.printf("Factorial of %d = %d", num, factorial);
  12. }
  13. }
Cuando ejecutas el programa, la salida será:
Factorial de 30 = 265252859812191058636308480000000
Aquí, en lugar de long, usamos BigIntegerfactorial variable.
Como *no se puede usar con BigInteger, en su lugar lo usamos multiply()para el producto. Además, num debe ser lanzado BigIntegerpara multiplicación.

Del mismo modo, también podemos usar un ciclo while para resolver este problema.

Ejemplo 3: Encontrar factorial de un número usando el ciclo while

  1. public class Factorial {
  2. public static void main(String[] args) {
  3. int num = 5, i = 1;
  4. long factorial = 1;
  5. while(i <= num)
  6. {
  7. factorial *= i;
  8. i++;
  9. }
  10. System.out.printf("Factorial of %d = %d", num, factorial);
  11. }
  12. }
Cuando ejecutas el programa, la salida será:
Factorial de 5 = 120
En el programa anterior, a diferencia de un bucle for, tenemos que incrementar el valor de i dentro del cuerpo del bucle.
Aunque ambos programas son técnicamente correctos, es mejor usarlo para bucle en este caso. Es porque se conoce el número de iteraciones (hasta num ).
Visite esta página para aprender a encontrar el factorial de un número usando la recursividad .

Publicar un comentario

0 Comentarios