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

Exercício 5 - Não entendi completamente a montagem da solução

Boa tarde, tudo bem?

Fiquei com dúvida no exercício de fatoração. Sei o que é a fatoração matemática e entendi o conceito do while, mas nesse exemplo ficou tudo um pouco confuso pra mim.

Por que fatorial = 1?

E por que finaliza com i -= 1? Esse -= seria por conta da contagem descrescente até chegar ao número 1?

Grata desde já!

2 respostas
solução!

Boa noite Fabiana! Tudo bem com você?

Ótimas perguntas, vamos por partes para ficar mais fácil a compreensão de cada uma delas.

Por que fatorial = 1?

Quando calculamos o fatorial de um número, começamos a multiplicação a partir de 1. Isso porque, se começássemos com 0, qualquer multiplicação resultaria em 0, o que não é o que queremos. Por exemplo, o fatorial de 5 é calculado como 5 x 4 x 3 x 2 x 1. Iniciar a variável fatorial com 1 nos permite multiplicar por cada número na sequência sem afetar o resultado final.

Por que finaliza com i -= 1?

O i -= 1 é uma forma de decrementar o valor de i em 1 a cada iteração do loop. No contexto do cálculo do fatorial, isso é necessário porque estamos multiplicando o número inicial pelo seu antecessor até chegar a 1. Assim, se começarmos com i igual ao número fornecido pela pessoa usuária, precisamos diminuir i em 1 a cada passo para seguir multiplicando pelos números anteriores até chegar a 1. Por exemplo, se o número fornecido é 5, o loop deve multiplicar 5 x 4 x 3 x 2 x 1. O i -= 1 faz com que o loop vá de 5 até 1, multiplicando cada valor no caminho.

Exemplo prático

Antes de irmos para o exemplo, é importante lembrar que:

  • *= significa "multiplicar e atualizar". Exemplo: fatorial *= i é o mesmo que fatorial = fatorial * i.
  • -= significa "subtrair e atualizar". Exemplo: i -= 1 é o mesmo que i = i - 1.

Agora,vamos partir para prática. Imagine que queremos calcular o fatorial de 3. O programa funcionará assim:

  • Primeiro, pedimos ao usuário para informar um número. No caso, digitamos 3, então num = 3.
  • Inicializamos a variável fatorial com 1. Começamos com 1 porque é o valor neutro da multiplicação.
  • A variável i também começa com o valor de num, ou seja, i = 3. Ela será usada para contar de forma decrescente até 1.
  • Entramos no laço while que continua enquanto i > 0. Vamos calcular assim:
    • Primeira vez no laço (i = 3):
      • Atualizamos fatorial = fatorial * i ou seja, fatorial = 1 * 3 que resultará em 3.
      • Reduzimos i em 1: agora i = 2.
    • Segunda vez no laço (i = 2):
      • Atualizamos fatorial = fatorial * i ou seja, fatorial = 3 * 2 que resultará em 6`.
      • Reduzimos i em 1: agora i = 1.
    • Terceira vez no laço (i = 1):
      • Atualizamos fatorial = fatorial * i ou seja, fatorial = 6 * 1 que resultará em 6`.
      • Reduzimos i em 1: agora i = 0.
  • O laço termina porque i = 0 (a condição i > 0 não é mais verdadeira).
  • O programa exibe: Fatorial de 3 é 6.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Muito obrigada pela explicação certeira! Agora fez todo sentido. :D