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

Dúvida no Ex. 6 da Aula 2 - Variáveis e fluxo

Não entendi a seguinte parte...

int fatorial = 1;
        for(int n=1; n< 10; n++) {
             fatorial = fatorial * n;

            System.out.println("O Fatorial de " + n + "é: " +fatorial);
        }

Onde a variável fatorial está sendo incrementada? Ela não deveria ser sempre 1 ?

No caso passando a segunda vez pelo loop não seria...

n = 2;

fatorial (1) = fatorial (1) * 2;

fatorial = 2; ( está correto )

mas se o n valer 4

n = 4;

fatorial (1) = fatorial (1) * 4;

fatorial = 24 , Não entendi porque retorna 24 .

3 respostas
solução!

João nesse caso esta sendo usado a variavel fatorial para ir guardando a soma dos valores de acordo com o valor de n, por exempo:

for (int n = 1; n <= 4; n++) {
    fatorial = fatorial * n
}

O loop seria....

fatorial = 1 * 1, resultado = 1

fatorial = 1 * 2, resultado = 2

fatorial = 2 * 3, resultado = 6

fatorial = 6 * 4, resultado = 24

Boa noite João Paulo! Deixa eu ver se consigo te ajudar...

A variável fatorial é alterada dentro do for onde é dito que:fatorial = fatorial * n;

No 1º loop do for, onde fatorial=1 e n=1, usando a fórmula “fatorial = fatorial * n;”, ficaria assim:

fatorial = 1 1; //Aqui é onde a variável fatorial é alterada, recebendo o resultado de fatorial n. Nesse loop o valor permanece 1. É impresso: O Fatorial de 1 é: 1

No 2º loop, o valor da variável fatorial permaneceu 1 mas o n foi incrementado e agora vale 2. Então fica:

fatorial = 1 * 2 // fatorial passa a valer 2. É impresso: O Fatorial de 2 é: 2

No 3º loop, fatorial=2 e n=3. Então fica:

fatorial = 2 * 3 // fatorial passa a valer 6. É impresso: O Fatorial de 3 é: 6

No 4º loop, fatorial=6 e n=4. Então fica:

fatorial = 6 * 4 // fatorial passa a valer 24. É impresso: O Fatorial de 4 é: 24

No 5º loop, fatorial=24 e n=5. Então fica:

fatorial = 24 * 5 // fatorial passa a valer 120. É impresso: O Fatorial de 5 é: 120

No 6º loop, fatorial=120 e n=6. Então fica:

fatorial = 120 * 6 // fatorial passa a valer 720. É impresso: O Fatorial de 6 é: 720

No 7º loop, fatorial=720 e n=7. Então fica:

fatorial = 720 * 7 // fatorial passa a valer 5040. É impresso: O Fatorial de 7 é: 5040

No 8º loop, fatorial=5040 e n=8. Então fica:

fatorial = 5040 * 8 // fatorial passa a valer 40320. É impresso: O Fatorial de 8 é: 40320 No 9º loop, fatorial=40320 e n=9. Então fica:

fatorial = 40320 * 9 // fatorial passa a valer 362880. É impresso: O Fatorial de 9 é: 362880

E respeitando a condição de que o for deve se repetir até que n < 10, o loop é finalizado. Espero que tenha ajudado! :)

Boa noite João. Tudo tranquilo? No início também tive dificuldade de entender, mas com a prática você irá pegar bem fácil. Quando você utiliza o for o incremento fica localizado em variavel++ Ex: for(int n=1; n< 10;n++) . Como você está em loop (for) ele irá repetir até a condição n < 10 for verdadeira e o que o loop irá executar vai ser 1 * 1 e o resultado será guardando dentro da variável fatorial. Ex = fatorial = 1 * 1; Na próxima será:fatorial = 1 * 2 Na próxima: fatorial = 2 * 3 até chegar na última condição que é fatorial = 40320 * 9. Quando ele tentar executar novamente o loop vai perceber que n estará valendo 10 e 10 não é menor que 10, ou seja, 10 é diferente de 10, então ele dirá que é falso e o programa irá terminar. Qualquer dúvida é só perguntar.