🎯 Saiba o que estudar

Avançado com Treinador a partir de R$ 0,76/dia

Considere os dois pseudocódigos recursivos apresentados a s...

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

Considere os dois pseudocódigos recursivos apresentados a seguir:


Código 01

função fibonacci(n: inteiro) -> inteiro:

 se n <= 1 então

 retornar n

 senão

 retornar fibonacci(n-1) + fibonacci(n-2)

 fim se


Código 02

função fatorial(n: inteiro) -> inteiro:

 se n <= 1 então

 retornar 1

 senão

 retornar n * fatorial(n-1)

 fim se


A partir da análise dos códigos apresentados, assinale a alternativa que apresenta a principal diferença entre os pseudocódigos recursivos 1 e 2 em termos de seu propósito e operação.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: A

Fundamento decisivo: A decisão estava na expressão de retorno de cada pseudocódigo: no código 1 aparece '+', e no código 2 aparece '*'.

Tema central: recursão: soma vs produto
Análise das alternativas
A
Certa
A alternativa A está correta porque identifica a operação recursiva central de cada pseudocódigo. No código 1, o retorno fibonacci(n-1) + fibonacci(n-2) mostra combinação aditiva de termos anteriores, característica do cálculo de Fibonacci. No código 2, o retorno n * fatorial(n-1) mostra combinação multiplicativa decrescente, característica do cálculo de fatorial.
B
Errada
Está errada porque o código 2 não realiza soma. O retorno dele é n * fatorial(n-1), portanto sua etapa recursiva é multiplicativa, não aditiva.
C
Errada
Está errada porque inverte os papéis dos dois pseudocódigos. O código 1 usa '+' no retorno, enquanto o código 2 usa '*', de modo que não é o 2 que soma nem o 1 que multiplica.
D
Errada
Está errada porque o código 1 não calcula produto. Sua recorrência é fibonacci(n-1) + fibonacci(n-2), o que caracteriza soma de resultados anteriores.
Pegadinha da questão
A confusão era tratar ambos apenas como algoritmos recursivos e concluir que fazem a mesma operação, ou inverter soma e produto por leitura apressada dos códigos.
Dica para questões semelhantes
  • Em questão sobre recursão, olhe primeiro a expressão do retorno recursivo; ela mostra a operação central do algoritmo.
  • Compare diretamente os operadores usados na recorrência para identificar a diferença funcional entre dois pseudocódigos.
  • Use o caso-base como reforço para verificar se os algoritmos realmente implementam o mesmo cálculo ou não.

Clique para visualizar este gabarito

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