package exercicioseder;
import java.util.*;
public class ExercicioER10 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int fatorial = 1, numero, cont1 = 0, numerom = 1;
while (cont1 < 90) {
System.out.println("Digite um número inteiro positivo: ");
numero = sc.nextInt();
if (numero == 0) {
System.out.println("Fatorial de 0 é 1.");
}
while (numerom <=numero) {
fatorial = fatorial * numerom;
numerom++;
}
System.out.println("Fatorial de " + numero + " é " + fatorial+ ".");
cont1++;
}
}
}
O código funcionou até certo ponto, se eu por os números em ordem crescente, no número 20, as fatoriais começam a serem dadas negativas. Se digitar os números em ordem decrescente, a fatorial do número maior passa a ser a mesma para os números menores digitados posteriormente. Eu só posso utilizar "while" e "Scanner", e preciso receber um número do usuário, calcular sua fatorial e repetir esse processo várias vezes.
Quero que o programa, ao dar o resultado(fatorial do numero recebido), comece do zero, sem aproveitar nenhum número que foi recebido por ele anteriormente.
Ainda estou em Fundamentos e sei que tem aquela história de ensinar a pescar, mas não dar o peixe. Porém pessoal, eu estou aqui como última esperança, já fucei esse fórum todo e não achei solução, e não só aqui, há horas eu estou parado nesse programinha tão pequeno, isso deixa qualquer iniciante frustrado.
Espero que não tenha feito algo errado, e agradeço se alguém for paciente e prestativo para me ajudar, porém desde já, obrigado!