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

[Dúvida] Questão 5 - Aula 4

Boa noite, pessoal!

Não entendi bem o porquê de atribuir "i = num" nessa resolução. Se eu usasse diretamente o valor de "num" o código poderia dar errado em algum momento?

num = int(input('Informe um número inteiro: '))

fatorial = 1 i = num

while i > 0: fatorial * = i i -= 1 print(f'Fatorial de {num} é {fatorial}')


E mais uma coisa!! Eu resolvi a questão usando o for. Também pode ser certo?

num = int(input('Dê um número inteiro: ')) mult = 1

for intervalo in range(num +1, 2) or range(1, num +1): mult *= intervalo

print(f'O fatorial de {num} é: {mult}')

Muito obrigada!!

2 respostas
solução!

A gente armazena o num na variável i pra não bugar o print no final do codigo, já que ele quer saber qual é o numero digitado, e na iteração o numero vai sendo reduzindo de 1 em 1, quando chegar no print no final do codigo o numero vai ser 0. Creio que a maneira mais facil de você visualizar isso é testando o codigo sem usar a variável i:

num = int(input('Informe um número inteiro: '))

fatorial = 1

while num > 0: fatorial *= num num -= 1

print(f'Fatorial de {num} é {fatorial}')

O resultado vai ser Informe um número inteiro: 3 Fatorial de 0 é 6 Veja que a conta dá certo, o fatorial de 3 é 6 mesmo. Mas no print diz que o num é zero.

Quanto a segunda duvida, pode usar o for sim. Tá correta

Ah, entendi! Muito obrigada pela resposta!!