Exercício capítulo 8

Exercício capítulo 8

by Tuany Castro -
Number of replies: 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?

In reply to Tuany Castro

Re: Exercício capítulo 8

by 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?