domingo, 31 de octubre de 2010

Deitel_C++_3.41 (Números de Fibonacci en C++)

_____________________________________________________________________________________
Ejercicio 3.41 (La Serie de Fibonacci) La serie de Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, .... empieza con los números 0 y 1, y tiene la propiedad de que cada término sucesivo es la suma de los dos términos anteriores. a) Escriba una función no recursiva llamada fibonacci(n) que calcule el enésimo número de Fibonacci. b) Determine el número más grande de Fibonacci que puede desplegar su sistema. c) Modifique la parte a) del programa para que utilice double en lugar de int para que calcule y devuelva números de Fibonacci, y utilice este programa modificado para repetir la parte b)
_____________________________________________________________________________________
Solución:
La serie es una clásica de las ciencias de la complejidad, pensada, en un principio, como un modelo de crecimiento de una población de conejos. Para mayor información, revise un algo acerca de la sucesión de Fibonacci en Ésta página.
//Calcula la serie de Fibonacci

   #include <iostream>
   using namespace std;
   
   
   /*Prototipo de la funcion fibonacci*/
   int fibonacci (int);
   
   ///////////////////////////////////////////////////////////////////
   // MAIN
   ///////////////////////////////////////////////////////////////////
   int main()
 
   {

    int number, respuesta;
    cout <<endl<<endl<< "Este programa calcula el numero de Fibonacci."<<endl;
    cout <<"Introduzca un numero: " <<endl;
    cin >> number;

    if (0 == number || 1 == number )
    cout <<"Fibonacci de: " << number<<" es " << number << endl;
    else
      {

      respuesta = fibonacci (number);
      cout<<"Fibonacci de " << number << " es " << respuesta << endl;

      }
    return 0;

   }

  /////////////////////////////////////////////////////////////////////
  // FUNCION FIBONACCI
  /////////////////////////////////////////////////////////////////////
  
   int fibonacci (int number)

   {
   int fib1 = 0, fib2 = 1, fibn = 0, temp;

   for ( int n = 2; n <= number; ++n )
   {
   fibn = fib2 + fib1;
   temp = fib2;
   fib2 = temp + fib1;
   fib1 = temp;
   }

   return fibn;
   }

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...