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;
}
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));
}
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: https://github.com/franciscojsc/fatorial-em-java.git