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á: