Pessoal, tenho um código que calcula a fatorial de um número, mas tenho tido problemas pois o código não consegue calcular a fatorial de números muito grandes e em alguns casos o fatorial retorna negativo.
Segue o código:
String formula = String.valueOf(jTextField1.getText());
String valores[] = formula.split("!");
int num = Integer.parseInt(valores[1]);
int total = 1;
for(int i = 1;i <= num;i++){
total *= i;
}
jLabel2.setText(String.valueOf(total));
Eu tentei usar todos os tipos que você citou mas ainda estou tendo problemas, o máximo que já consegui calcular foi a fatorial de 65 e eu quero poder calcular a fatorial de qualquer número.
btnCalcularFatorial.setOnAction((ActionEvent e)->{
long valor = 65;
BigInteger resultado = BigInteger.valueOf(1);
BigInteger iAtual;
for (long i = 1; i <= valor; i++) {
iAtual = new BigInteger(String.valueOf(i));
resultado = resultado.multiply(iAtual);
}
System.out.println(resultado);
});
Acho que calcular fatorial para valores long resolve a maioria dos problemas…
Você precisa calcular para números maiores ainda? Porque fiz uns testes aqui e o fatorial de 160 é: