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

[Dúvida] Aula 4 Exercício 5 - Não entendi parte da solução

Olá,

Na solução da instrutora não entendi a lógica da variável "fatorial".

fatorial = 1


i = num

while i > 0:

fatorial *= i

i -= 1

Na minha cabeça, se num = 5 e i =5, faz realmente sentido ir diminuindo pra 4,3,2,1. Mas se fatorial = 1. Na minha cabeça cada loop tá calculando o seguinte na linha fatoria*=i: 1 * 5, 1 * 4, 1 * 3, etc

2 respostas
solução!

Oii Filipe, como você está?

A variável fatorial vai acumular o valor do produto de cada número entre o valor de num e zero. Ela é inicializada com valor 1, pois todo número multiplicado por 1 é igual a ele mesmo, porém, dentro do loop while, temos o acúmulo acontecendo por meio do símbolo *=.

A linha fatorial *= i é a mesma coisa que fatorial = fatorial * i. A cada vez que o loop acontecer, o valor da variável fatorial será incrementado com a multiplicação, e o valor de i será decrementado em 1. Ou seja, se fizermos o fatorial de 5, no primeiro loop o valor de fatorial será 5, e o de i diminuirá para 4. No segundo loop, fatorial será 4x5, ou seja, 20, e o valor de i será 3, e assim sucessivamente, até que i seja igual a zero, o que encerra o loop.

Espero ter esclarecido sua dúvida :)

Estamos por aqui sempre que precisar de uma ajudinha. Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Explicação ótima. Acho que finalmente entendi essa operação com algum sinal antes do igual. Também não percebi que a variável fatorial estava sendo atualizada quando foi colocado um igual na frente dela. O curso tá sendo bom pra rever uns conceitos de matemática também. Apesar de ruim, sempre gostei muito, mas as escolas não ajudavam também. Valeu mesmo!