DEV Community

Cover image for Fatorial em Java
Francisco Chaves
Francisco Chaves

Posted on • Originally published at franciscochaves.com.br

Fatorial em Java

Olá pessoal, irei mostrar algumas formas de realizar o fatorial em Java.

Fatorial interativo

Vamos calcular o fatorial do número 5 de forma interativa:

public int fatorialInterativo(int numero){
  //variável para armazenar o valor a ser calculado
  int fatorial = 1;
  //laço de repetição
  for (int i = 1; i <= numero; i++) {
    fatorial = fatorial * i;
  }
  return fatorial;
}
Enter fullscreen mode Exit fullscreen mode

Fatorial recursivo

Queremos saber o fatorial do número 5 de forma recursiva:

public int fatorialRecursivo(int fatRec){
  //condição de parada
  if(fatRec <= 1){
    return 1 ;
  }
  //5!
  //5 * 4! = 120
  //4 * 3! = 24
  //3 * 2! = 6
  //2 * 1! = 2
  // 1! = 1
  // se o valor for igual a um, para a recursão e retorna calculando os valores
  return (fatRec \ fatorialRecursivo(fatRec - 1));
}
Enter fullscreen mode Exit fullscreen mode

Para realizar o fatorial de forma recursiva teremos que criar um método para retornar o valor calculado.
Então criaremos um método que retorne um inteiro e receba como parâmetro um valor para ser calculado, lembrando que qualquer método que não seja void retorna algum valor ou objeto, no método especificamos a condição de parada, ou seja, quando esta condição for verdadeira a recursão para, se a condição de parada for falsa retorna o mesmo método com outro parâmetro até encontrar a condição verdadeira, deve-se tomar cuidado para esta condição não se tornar uma recursão infinita, se a condição nunca for verdadeira o método irá consumir muita memória da máquina e ocorrerá um erro conhecido por StackOverflowError.

Código fonte no Github:

GitHub logo franciscojsc / fatorial-em-java

Fatorial em Java, recursivo e não recursivo.

🎉 Fatorial em Java 🎉

Obtenha o fatorial em Java de forma recursiva e não recursiva.

Fatorial

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Top comments (0)