cami-la/loops-e-arrays

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.

2022-01-11_14-58

Uma possível solução é transformar as variáveis de int -> double.

2022-01-11_14-59

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! 😃