Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Fatorial (exercício 6 - variáveis de fluxo)

Amigos, a resposta do instrutor é a seguinte

class Fatorial {
    public static void main (String[] args) {
        int fatorial = 1;
        for (int n = 1; n <= 10; n++) {

            if ( n==1 || n ==2 ) {
                fatorial = fatorial * n;
                System.out.println("fat(" + n + ") = " + fatorial);
            }
            if ( n > 2) {
                fatorial = n * (n-1) * (n - 2);
                System.out.println("fat(" + n + ") = " + fatorial);

            }

        }
    }
}

A saída para tal algoritmo é a seguinte: fat(1) = 1 fat(2) = 2 fat(3) = 6 fat(4) = 24 fat(5) = 60 fat(6) = 120 fat(7) = 210 fat(8) = 336 fat(9) = 504 fat(10) = 720 O próprio exemplo do exercício mostra que o resultado de !6 = 720. Acredito haver um equivoco no enunciado ou na questão. Minha resposta:

public class Fatorial {
    public static void main(String[] args) {
        long n = 1;
        long fatorial = 1;
        for (int i = 1; i <= 10; i++) {
            fatorial *=i;
            System.out.println("fatorial ("+i+") = "+fatorial);
        }
    }
}

Saída que acredito ser a correta: fatorial (1) = 1 fatorial (2) = 2 fatorial (3) = 6 fatorial (4) = 24 fatorial (5) = 120 fatorial (6) = 720 fatorial (7) = 5040 fatorial (8) = 40320 fatorial (9) = 362880 fatorial (10) = 3628800

1 resposta
solução!

Bom dia, Aislan!

Realmente, o modelo apresentado no primeiro código não está fatorando corretamente. O fatorial de 7 é 5040 e não 210.

Pode ser, também, que o exercício seja apenas um modelo de como fatorar.

Você pode sugerir uma melhoria (tem um botão com esse nome) em cada exercício, justamente para que eles possam corrigir, se for o caso.

Tenta fazer essa sugestão lá no exercício. Eles conferem o código e verificam se está adequado à aula ou não.

Abraço.