Thu Apr 05, 2007 9:01 pm
#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;
}
|
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com
Powered by phpBB © phpBB Group.