Olá pessoal, boa noite! Sou novo em Java, comecei a aprendê-la nessa semana.
Fiz um programa simples que calcula o fatorial de um número:
import java.util.Scanner;
class fatorial{
public static void main(String[] args){
Scanner ler = new Scanner(System.in);
System.out.printf("Você quer calcular o fatorial de que número maior que zero?\n");
int num = ler.nextInt();
int fat = 1;
for(int n = 1; n <= num; n++){
fat = fat*n;
}
System.out.printf("O fatorial de %d é %d\n", num, fat);
}
Quando calculo o fatorial de 20, obtenho o número negativo -2102132736. Mudei de int para long e assim consegui o resultado certo. Mas aí quando eu quis obter o fatorial de 50, também obtive um número negativo.
Escrevi então um pequeno código em python para calcular fatorial, o que não me apresentou números negativos. Assim, cheguei a conclusão que isso se deve a algum aspecto de Java que eu desconheço.
Algum de vocês poderia me ajudar?