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

Aula 2 exercício 6 - outra resolução

Gostaria de saber se o seguinte código também funcionaria para imprimir o fatorial de 10:

class CalculaFatorial {
    public static void main (String[] args) {
        int fatorial = 1;
        for(int n = 1; n < 11; n++) {
            if(n > 1) {
                fatorial = n*(n-1);
            } else {
                fatorial = 1;
            }
        }
        System.out.println("O fatorial de " + n + " é igual a " + fatorial)
    }
}
2 respostas
solução!

ola Gabriel

Seu código ainda não funciona.

Primeiro seu syso esta fora do for, então a variável n não é reconhecida.

nesse trecho

fatorial = n*(n-1);

você precisa alterar para

fatorial = fatorial * n;

veja que a fórmula do fatorial é essa:

fatorial(n) = fatorial(n-1) * n

por exemplo:

fatorial(4) = fatorial(3) x 4 = 6 x 4 = 24

dentro do seu for, quando sua iteração for n= 4

a execução do java vai ser =

fatorial = fatorial(3) x 4

lembre-se, a variavel fatorial esta sendo atribuida pelo valor de fatorial da iteração anterior, ou seja, fatorial de 3.

Obrigado, Jefferson!

Estava tentando resolver os exercícios dessa aula sem escrever o código num editor, pois o meu não estava abrindo, por isso abri o tópico. Agora testei o código corrigido e entendi a resolução.

Até mais!