Fatorial de 20, 20!
Holivan opened this issue · 4 comments
Até o 19 deu ok, mas quando coloquei o valor 20. O resultado foi negativo! o.ó'
20! = -2102132736
Até o 19 deu ok, mas quando coloquei o valor 20. O resultado foi negativo! o.ó'
20! = -2102132736
Oi, amigo. Boa tarde, seguinte:
O fatorial de 20 é um valor muito grande: 2.432.902.008.176.640.000
Como estamos trabalhando com variáveis do tipo int
, não é suportado.
Segue o range de alguns tipos primitivos do java.
Uma possível solução é transformar as variáveis de int -> double.
public class Ex6_Fatorial {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Fatorial: ");
int fatorial = scan.nextInt();
int multiplicacao = 1;
System.out.print(fatorial + "! = ");
for(int i = fatorial ; i >= 1; i--) {
multiplicacao = multiplicacao * i;
}
System.out.println(multiplicacao);
}
}
Ahhh, entendi! É como se virasse o contador! Obrigado!
^^'
Só pra constar... Não fui testando um por um até 20, eu coloquei 20 aleatoriamente e foi justamente no ponto da virada, pois quando eu tentei com o 19 deu certo. xD
Ahhh, entendi! É como se virasse o contador! Obrigado!
^^'
Só pra constar... Não fui testando um por um até 20, eu coloquei 20 aleatoriamente e foi justamente no ponto da virada, pois quando eu tentei com o 19 deu certo. xD
Kkkkkk isso foi ótimo!
Eu nunca tinha testado o fatorial de um número que o resultado não fosse suportado pelo tipo primitivo int
.
Em caso de dúvidas, sigo à disposição! 😃