Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Login

Register Now

Welcome to All Test Answers

Fibonacci function using C programming

The Fibonacci series
0, 1, 1, 2, 3, 5, 8, 13, 21, …
begins with the terms 0 and 1 and has the property that each succeeding term is the sum of the two
preceding terms. a) Write a nonrecursive function fibonacci(n) that calculates the nth Fibonacci
number. b) Determine the largest Fibonacci number that can be printed on your system. Modify
the program of part a) to use double instead of int to calculate and return Fibonacci numbers. Let
the program loop until it fails because of an excessively high value.

Answer:


#include <stdio.h>
#define MAX 93  
unsigned long long int fibonacci( unsigned int n );

int main()
{ 
   int loop; // loop counter 

   // calculate and display Fibonacci value for 0 to MAX 
   for ( loop = 0; loop <= MAX; ++loop ) {
      printf( "fibonacci( %u ) = %llu\n", loop, fibonacci( loop ) );
   } // end for 
} // end main 

// fibonacci nonrecursively calculates nth Fibonacci number 
unsigned long long int fibonacci( unsigned int n )
{ 
   unsigned int j; // loop counter 
   unsigned long long int fib1 = 0; // variable that holds a fibonacci number 
   unsigned long long int fib2 = 1; // variable that holds a fibonacci number 

   // loop to find nth Fibonacci value 
   for ( j = 2; j <= n; ++j ) {
      if ( j % 2 == 0 )
         fib1 += fib2;
      else
         fib2 += fib1;
   } // end for 

   // return nth Fibonacci value 
   if ( n % 2 == 0 )
      return fib1;
   else
      return fib2;
} 

About

Leave a reply

Captcha Click on image to update the captcha .

error: Content is protected !!