Fibonacci Numbers are numbers defined mathematically as
n = n_1 + n_2
where n_1 and n_2 are the two number preceding n in the sequence.
Although recursion can be used to solve this sequence easily, recursive functions tend
to have a lot of overhead. Often it is more desirable to have less overhead. In such
cases it would be necessary to use a loop as opposed to a recursive function.
Let's look at some code that solves Fibonacci Numbers without using recursion.
//includes
#include <iostream>
//standard namespace
using namespace std;
//function prototype
void fibonacci(int nth);
//MAIN FUNCTION
int main(){
     //local variable
     int nth;
     //get N from user
     cout << "Enter max sequence digit: ";
     cin >> nth;
     //list Fibonacci numbers to Nth degree
     fibonacci(nth);
     //end program
     return 0;
}
//fibonacci function
//gets nth fibonacci number without using recursion
void fibonacci(int nth){
     //initial numbers
     int n = 0;
     int n_1 = 1;
     int n_2 = 0;
     //run until Nth number is obtained
     for(; nth>0; nth--){
         n = n_1+n_2; //get Nth number
         n_1 = n_2; //update n_1
         n_2 = n; //update n_2
         //show current number in sequence
         cout << n << endl;
     }
}
|