Solução Informática – Nível Iniciante – Semana 9

por

Solução por Anita Ramos

Para este problema utilizaremos uma nova função que irá calcular qual o número da sequência de Fibonacci de posição $$a$$ e o número de chamadas feitas. Tudo isso fora da $$int$$ $$main()$$. Esse recurso facilita na produção de um programa mais compacto, organizado e eficiente.

Iniciando a programação então, após adicionar a biblioteca, declaramos a variável $$cont$$ para que ela possa ser utilizada em toda a programação. Depois, temos a função $$int$$ $$fib()$$, responsável por toda a lógica, que irá receber um valor e retornar o número de chamadas (a partir da $$cont$$, que soma 1 sempre que essa função é acionada) e o número de posição $$a$$ na sequência de Fibonacci (a partir da “chamada” repetidamente da função $$fib()$$). Assim, tomando como exemplo o valor recebido como 4, temos:

fib(4) $$=$$ fib(3) $$+$$ fib(2) $$<=>$$

fib(4) $$=$$ [fib(2) $$+$$ fib(1)] $$+$$ [fib(1) $$+$$ fib(0)] $$<=>$$

fib(4) $$=$$ [(fib(1) $$+$$ fib(0)) $$+$$ fib(1)] $$+$$ [fib(1) $$+$$ fib(0)] $$=$$ 1 $$+$$ 0 $$+$$ 1 $$+$$ 1 $$+$$ 0 $$=$$ 3

Em seguida, o programa executa apenas a $$int$$ $$main()$$ que irá ler as linhas de entrada e imprimir, a cada caso de teste, o resultado obtido na função $$fib()$$  do número recebido e o número de chamadas feitas de acordo com a forma de impressão requisitada.

Segue o código comentado para melhor compreensão da solução:

https://gist.github.com/anitainfo/6346b7a6476724e44e9914c3c109f424