Switch to full style
For C/C++ coders discussions and solutions
Post a reply

Fibonacci iterative

Thu Apr 05, 2007 9:01 pm

This is a C++ for Fibonacci iterative
cpp code
#include <iostream>
#include <iomanip>
using namespace std;

//function declaration
double fibonacci(unsigned int n);

int main()
{
int n;

cout << "Enter a number: ";
cin >> n;

//An 'If' condition to prevent the user from entering -ve integers
if (n<0){
cout << "Please Enter a positive integer!" << endl;
return 0;
}
else
cout << "The fibonacci number is " << fibonacci(n) << endl;

cout << "The fibonacci sequence is as follows:" << endl;

//Print Table Heading
cout << setw(10) << "n" << setw(10) << " | " << setw(10) << "F(n)" << endl;
cout << "-----------------------------------------" << endl;

//A Loop to print fibonacci numbers until 'n' in a tabular form
for(int i=0;i<=n;i++)
cout << setw(10) << i << setw(10) << " | " << setw(10) << fibonacci(i) << endl;

return 0;
}

//function definition
double fibonacci(unsigned int n)
{
//n_minus_1 represents what's supposed to be F(n-1)
//n_minus_2 represents what's supposed to be F(n-2)
//sum represents F(n) which equals F(n-1)+F(n-2)
double n_minus_1=0,n_minus_2=1,sum;

switch(n)
{
//if n=0 then F(n)=0
case 0:
return 0;

//if n=1 then F(n)=1
case 1:
return 1;

//otherwise the sum (i.e F(n)) is equal to (n_minus_1)+(n_minus_2) (i.e F(n-1)+F(n-2)
//the counter keeps on moving the variables areound 'n' times
//so that on each time F(n-2) becomes equal to F(n-1) and F(n-1) becomes equal to F(n)
//and F(n) is reevaluated each time in the loop
default:
for(int counter=0;counter<n;counter++)
{
sum=n_minus_1+n_minus_2;
n_minus_2=n_minus_1;
n_minus_1=sum ;
}
}
return sum;
}




Post a reply
  Related Posts  to : Fibonacci iterative
 Fibonacci vs factorial     -  
 solving fibonacci sequence recursively     -  
 Implementing fibonacci sequence problem using iterations     -  

Topic Tags

C++ Algorithms