Fibonacci. A série de Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, … começa com os termos 0 e 1, e tem a propriedade de estabelecer que o termo seguinte é a soma dos dois termos anteriores. a) Escreva uma função não recursiva fibonacci(n) que calcule o n-ésimo número de Fibonacci. b) Determine o maior número de Fibonacci que pode ser impresso no seu sistema. Modifique o programa da parte a) para usar double em vez de int para calcular e retornar números de Fibonacci. Faça com que o programa se repita até que falhe devido a um valor excessivamente alto

Passo 1

Fala Galeraaa!!! Exercício show de bola para treinar. Vamos juntos resolver!!!

Começando pela letra (a) vamos escrevera nossa função para calcular a série de Fibonacci. A série de Fibonacci calcula até o n-ésimo número, então, vamos definir um tamanho fixo através do comando #define MAX 23. Feito isso, nossa função irá receber um array com o tamanho definido por MAX, e também os 2 termos iniciais da série de Fibonacci, como, fib [ 0 ] = 0 e fib [ 1 ] = 1 . Em seguida, precisamos de uma estrutura de repetição para calcular os restantes dos termos da série, usaremos o for para isso. Dentro do for vamos calcular os termos seguintes através da soma dos dois termos anteriores.

Nossa função então ficará da seguinte forma:

/* função fibonacci */

int fibonacci( int n){

int j;

int fib[ MAX ];

fib[ 0 ] = 0;

fib[ 1 ] = 1;

for ( j = 2; j

{

fib[ j ] = fib[ j - 1 ] + fib[ j - 2];

}/* fim do for */

return fib[ n ];

}/* fim da função */

Passo 2

Na letra (b) vamos modificar a função Fibonacci para usar double em vez de int. E precisamos também, alterar o valor de MAX para saber qual o será o valor mais alto que o nosso programa irá conseguir calcular até falhar. Essa parte vai variar de computador para computador. Então essas são as únicas mudanças na função. A função irá ficar da seguinte forma:

/* função fibonacci */

double fibonacci( int n){

int j;

double fib[ MAX ];

fib[ 0 ] = 0;

fib[ 1 ] = 1;

for ( j = 2; j

{

fib[ j ] = fib[ j - 1 ] + fib[ j - 2];

}/* fim do for */

return fib[ n ];

}/* fim da função */

Passo 3

Feito tudo isso precisaremos somente chamar a função dentro do main() e pronto!!! Lembrando que a parte de achar o maior valor até o programa falhar fica por sua conta, ou seja, altere o valor do #define MAX até a seu programa falhar.

Então é isso GALERINHAAA!! Até o próximo exercício.

Resposta

Na letra (a) o programa final será:

Na letra (b) o programa final será: