Imagem de fundo

Um método recursivo é aquele que chama a si mesmo, direta ou indiretamente. Métodos rec...

Um método recursivo é aquele que chama a si mesmo, direta ou indiretamente. Métodos recursivos permitem uma descrição mais clara e concisa dos algoritmos, especialmente quando o problema a ser resolvido pode ser definido em termos recursivos. No entanto, isso não significa que um método recursivo será sempre a melhor opção para resolver um problema (Ziviani, 2012).


O código em Python, a seguir, tem como objetivo calcular, recursivamente, o n-ésimo número de Fibonacci. Esse código é extremamente ineficiente, pois recalcula o mesmo valor várias vezes. Por exemplo, para calcular fib(5) são necessários os valores de fib(4) e fib(3). Entretanto, fib(4) também chama recursivamente fib(3).


Imagem associada para resolução da questão

Fonte: Dados do elaborador


Considerando a execução do código apresentado para n = 5, assinale a alternativa que representa CORRETAMENTE o número de chamadas de fib(5), fib(4), fib(3), fib(2) e fib(1), nessa ordem.


A

5, 3, 2, 1, 1


B

5, 4, 3, 2, 1


C

1, 2, 3, 4, 5


D

1, 1, 2, 3, 5