(Ajuda) O fatorial não apresenta números com mais de 3 caracteres

public class Exercício09 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    // TODO code application logic here
     Scanner ent = new Scanner(System.in);
    int num, fat = 1;
    int cont = 1;

    do{
        System.out.println("Digite um nº");
        num = ent.nextInt();
        
        for(int i = 1;i <= num; i++){
            fat = fat * i;
        }
        
        System.out.println("!" + num + " = " + fat);
        cont++;
        
   }while(cont < 2);
}

}

Olá, na verdade é bem simples, se vc for acompanhando os valores gerados em fat verá que extrapola o valor máximo do int. Mesmo trocando para long ele extrapola.

for (int i = 1; i <= num; i++) {
       fat = fat * i;
       System.out.println(fat);
}

Vai precisar usar BigInteger!