Exercício capítulo 8

Exercício capítulo 8

por Tuany Castro -
Número de respostas: 2
Oi gente,
Não estou conseguindo acertar o laço while para calcular fatoriais.
Estou fazendo assim:
int a = x - 1;
while ( a > 0 )
{
fatorial = x * a;
a = a - 1;
O problema é que o resultado dado é sempre o último do produto x * a,
ou seja, qndo o a = 1.
Por exemplo, se eu peço fatorial de 3 ele me responde o próprio 3.
Eu não consigo acertar uma forma p/ o while calcular, no exemplo, 3 * 2 *1
Como posso fazer isso?

Em resposta à Tuany Castro

Re: Exercício capítulo 8

por Arthur Gabriel de Santana -
Oi, Tuany.

Veja que no seu código, você está passando para a variável fatorial um valor que não depende das iterações anteriores. Assim, na última iteração, ocorre "fatorial = x * 1;" e por isso o resultado sai desse jeito.

O correto seria algo do tipo "fatorial = fatorial * a;".

Entendeu?