Programa Java para encontrar o fatorial de um número

Neste programa, você aprenderá a encontrar o fatorial de um número usando o loop for e while em Java.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Java para Loop
  • Java while e do … while Loop

O fatorial de um número positivo n é dado por:

 fatorial de n (n!) = 1 * 2 * 3 * 4 * … * n 

Exemplo 1: Encontre o fatorial de um número usando o loop for

 public class Factorial ( public static void main(String() args) ( int num = 10; long factorial = 1; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial *= i; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Resultado

 Fatorial de 10 = 3628800

Neste programa, usamos o loop for para percorrer todos os números entre 1 e o número dado num (10), e o produto de cada número até num é armazenado em um fatorial de variável.

Usamos long em vez de int para armazenar grandes resultados de fatorial. No entanto, ainda não é grande o suficiente para armazenar o valor de números maiores (digamos 100).

Para resultados que não podem ser armazenados em uma variável longa, usamos a BigIntegervariável declarada na java.mathbiblioteca.

Exemplo 2: Encontre o fatorial de um número usando BigInteger

 import java.math.BigInteger; public class Factorial ( public static void main(String() args) ( int num = 30; BigInteger factorial = BigInteger.ONE; for(int i = 1; i <= num; ++i) ( // factorial = factorial * i; factorial = factorial.multiply(BigInteger.valueOf(i)); ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Resultado

 Fatorial de 30 = 265252859812191058636308480000000

Aqui, em vez de long, usamos BigIntegerfatorial de variável.

Uma vez que, *não pode ser usado com BigInteger, em vez disso usamos multiply()para o produto. Além disso, num deve ser convertido para BigIntegerpara multiplicação.

Da mesma forma, também podemos usar um loop while para resolver esse problema.

Exemplo 3: Encontre o fatorial de um número usando o loop while

 public class Factorial ( public static void main(String() args) ( int num = 5, i = 1; long factorial = 1; while(i <= num) ( factorial *= i; i++; ) System.out.printf("Factorial of %d = %d", num, factorial); ) )

Resultado

 Fatorial de 5 = 120

No programa acima, ao contrário de um loop for, temos que incrementar o valor de i dentro do corpo do loop.

Embora ambos os programas sejam tecnicamente corretos, é melhor usar o loop for neste caso. É porque o número da iteração (até num) é conhecido.

Visite esta página para aprender a encontrar o fatorial de um número usando recursão.

Artigos interessantes...