A série de Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, ... começ...
A série de Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, ... começa com 0 e 1 e tem a propriedade de que cada número subseqüente de Fibonacci é a soma dos dois números de Fibonacci anteriores.
A série Fibonacci pode ser definida recursivamente como segue:
fibonacci (0) = 0
fibonacci (1) = 1
fibonacci ( n ) = fibonacci ( n - 1 ) + fibonacci ( n - 2 )
Indique a função recursiva, em C++, que representa a solução correta para a série de Fibonacci apresentada acima.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a B.
Vamos explorar o porquê:
A questão aborda o conceito de recursividade na programação, que é uma técnica onde uma função chama a si mesma para resolver um problema. No caso da série de Fibonacci, a recursividade é uma forma direta de definir o problema, pois cada número da série é a soma dos dois números anteriores, exceto para os dois primeiros números, que são 0 e 1.
Justificativa da alternativa B:
A alternativa B apresenta uma função recursiva correta para calcular a série de Fibonacci:
if (n == 0 || n == 1) return n;
Esta condição de base lida adequadamente com os casos iniciais da série (0 e 1). Para todos os outros valores de n
, a função retorna a soma dos dois números anteriores na série:
return fibonacci(n - 1) + fibonacci(n - 2);
Isso está alinhado exatamente com a definição da série de Fibonacci.
Análise das alternativas incorretas:
A: Essa alternativa retorna 1 ao invés de 0 para n == 0
. Além disso, utiliza multiplicação em vez de soma, o que está errado para a definição de Fibonacci.
C: Esta opção não considera uma condição de base para n == 0
e incrementa n
em vez de decrementá-lo, o que levaria a chamadas recursivas infinitas.
D: Apenas trata o caso n == 0
e continua incrementando n
. Isso resulta em chamadas recursivas infinitas, já que não há uma condição de saída adequada.
E: Falta uma condição de base, crucial em recursão para evitar chamadas infinitas. Sem isso, a função nunca pararia de chamar a si mesma.
Ao entender a lógica por trás da série de Fibonacci e como a recursão funciona, fica claro que a alternativa B é a única que cumpre todos os requisitos corretamente.
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