Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Estou com dúvida no curso de Primeiros passos com Java, no exercício 7 do capítulo Variáveis e fluxo.

Srs., não sei se isto aconteceu com todo mundo, mas para alguns números apareceu o sinal de negativo na frente, mesmo alterando o tipo da variável para long. Segue meu código para apreciação.

class Fatorial { public static void main(String[] args) {

long fatorial = 1;

for(int i = 1;i<=40;i++) {

fatorial = fatorial * i;

System.out.println("O fatorial de "+ i +" é igual a: "+fatorial); } } }

2 respostas

Na verdade parece um erro de lógica matemática: Tente dizer que 40>i>0; Espero ter ajudado.

solução!

O valor 40 fatorial é 815915283247897734345611269596115894272000000000 isso é maior do que a variável long suporta, que é 9223372036854775807. Use a classe BigInteger:

BigInteger fatorial = BigInteger.ONE;  
        for (long n = 1; n <= 40; n++) {  
            fatorial = fatorial.multiply(BigInteger.valueOf(n));  
            System.out.println("O fatorial de " + n + "! é igual a " + fatorial);  
        }

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software