Considere o seguinte algoritmo que calcula o fatorial de um ...

Próximas questões
Com base no mesmo assunto
Q737813 Algoritmos e Estrutura de Dados

Considere o seguinte algoritmo que calcula o fatorial de um número n (fatorial de n igual a 1 x 2 x 3 x ... x n), escrito em pseudocódigo:

I := 0; F := 1;

WHILE I < n DO

I := I + 1; F := I * F;

END

Selecione a opção que indica um algoritmo recursivo, escrito em pseudocódigo, que também calcula o fatorial de um número.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a Alternativa B. Vamos entender o porquê.

O tema da questão é algoritmos para cálculo de fatorial, com foco em uma implementação recursiva. Em programação, a recursividade é uma técnica onde uma função chama a si mesma para resolver subproblemas de um problema maior. Para calcular o fatorial de um número de forma recursiva, precisamos entender que o fatorial de n (n!) é definido como n * (n-1)!, e o fatorial de 0 é 1.

A Alternativa B apresenta o pseudocódigo corretamente: a função chama a si mesma de forma que, se o número é maior que 0, ela retorna I * F(I - 1). Este é um padrão clássico e correto de um algoritmo recursivo para calcular o fatorial. Quando I é igual a 0, a função retorna 1, que é a condição de parada ou caso base da recursão.

Agora, vejamos as alternativas incorretas:

Alternativa A: Esta opção tenta usar recursão, mas chama a função F passando o valor 1, o que não diminui o problema em direção ao caso base. Isso resultaria em ciclos infinitos para valores de entrada maiores que 0.

Alternativa C: Aqui, a recursão é feita sem multiplicar pelo valor atual de I. O retorno é apenas F(I - 1), o que incorretamente calcula o fatorial como sempre retornando o valor 1, mesmo que I seja maior que 0.

Alternativa D: Esta opção utiliza recursão, mas de forma incorreta, pois incrementa I ao invés de decrementá-lo, o que faz com que a função nunca chegue ao caso base (I igual a 0), resultando em loop infinito.

Alternativa E: Esta alternativa tenta chamar a função F com o mesmo valor de I, o que significa que a recursão não avança em direção ao caso base, levando novamente a ciclos infinitos para valores de entrada maiores que 0.

Espero que esta explicação tenha ajudado a esclarecer como os algoritmos recursivos funcionam para calcular o fatorial. Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo