/*
Compute the Fibonacci number
Fn using procedural techniques
f(6) = f(6-1) + f(6-2) = f5 + f4 = 5 + 3 = 8
*/
#include <iostream>
#include <math.h>
using namespace std;
//float Binet(float n);
int FibiProc ( int n) ;
int main( ) {
int userinput = 0 ;
bool done = false ;
cout .precision ( 15 ) ;
cout << "----------------------------------" << endl;
cout << "Lets compute a Fibonacci Sequence!" << endl;
cout << "----------------------------------" << endl;
cout << endl<< "Please enter a integer:" << endl<< "n = " ;
cin >> userinput;
cout << endl;
if ( userinput> 60 ) {
cout << "That number is to high for this calculator." << endl<< "As the Fibonacci Sequence uses irrational numbers!!" ;
cout << endl<< endl;
} else {
cout << "Using a Procedural Function the Fibonacci Sequence of F(" << userinput<< ")" << endl;
cout << endl<< endl;
cout << "F(" << userinput<< ") = " << FibiProc( userinput) ;
cout << endl<< endl;
}
cout << endl<< endl<< endl<< "Please Close Console Window" << endl;
cin .ignore ( '\n ' , 1024 ) ;
return ( 0 ) ;
}
int FibiProc( int n) {
if ( n== 0 || n== 1 ) {
return 1 ;
} else {
int result= 1 ;
int current= 1 ;
int last= 1 ;
for ( int i= 2 ; i< n; i++ ) {
result = current + last;
last = current;
current = result;
}
return ( result) ;
}
}
LyoKQ29tcHV0ZSB0aGUgRmlib25hY2NpIG51bWJlcgoJRm4gdXNpbmcgcHJvY2VkdXJhbCB0ZWNobmlxdWVzCgoJZig2KSA9IGYoNi0xKSArIGYoNi0yKSA9IGY1ICsgZjQgPSA1ICsgMyA9IDgKKi8KCgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxtYXRoLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCi8vZmxvYXQgQmluZXQoZmxvYXQgbik7CmludCBGaWJpUHJvYyAoaW50IG4pOwoKaW50IG1haW4oKXsKCWludCB1c2VyaW5wdXQgPSAwOwoJYm9vbCBkb25lID0gZmFsc2U7CgkKY291dC5wcmVjaXNpb24oMTUpOwoJY291dDw8Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPDxlbmRsOwoJY291dDw8IkxldHMgY29tcHV0ZSBhIEZpYm9uYWNjaSBTZXF1ZW5jZSEiPDxlbmRsOwoJY291dDw8Ii0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iPDxlbmRsOwoJY291dDw8ZW5kbDw8IlBsZWFzZSBlbnRlciBhIGludGVnZXI6Ijw8ZW5kbDw8Im4gPSAiOwoJY2luPj51c2VyaW5wdXQ7Cgljb3V0PDxlbmRsOwoJaWYgKHVzZXJpbnB1dD42MCl7CgkJY291dDw8IlRoYXQgbnVtYmVyIGlzIHRvIGhpZ2ggZm9yIHRoaXMgY2FsY3VsYXRvci4iPDxlbmRsPDwiQXMgdGhlIEZpYm9uYWNjaSBTZXF1ZW5jZSB1c2VzIGlycmF0aW9uYWwgbnVtYmVycyEhIjsKCQljb3V0PDxlbmRsPDxlbmRsOwoJfWVsc2V7CgkJY291dDw8IlVzaW5nIGEgUHJvY2VkdXJhbCBGdW5jdGlvbiB0aGUgRmlib25hY2NpIFNlcXVlbmNlIG9mIEYoIjw8dXNlcmlucHV0PDwiKSI8PGVuZGw7CgkJY291dDw8ZW5kbDw8ZW5kbDsKCQljb3V0PDwiRigiPDx1c2VyaW5wdXQ8PCIpID0gIjw8RmliaVByb2ModXNlcmlucHV0KTsKCQljb3V0PDxlbmRsPDxlbmRsOwoJfQoJY291dDw8ZW5kbDw8ZW5kbDw8ZW5kbDw8IlBsZWFzZSBDbG9zZSBDb25zb2xlIFdpbmRvdyI8PGVuZGw7CgljaW4uaWdub3JlKCdcbicsIDEwMjQpOwoJcmV0dXJuKDApOwoKfQoKaW50IEZpYmlQcm9jKGludCBuKXsKCglpZiAobj09MCB8fCBuPT0xKXsKCQlyZXR1cm4gMTsKCX1lbHNlewoJCWludCByZXN1bHQ9MTsKCQlpbnQgY3VycmVudD0xOwoJCWludCBsYXN0PTE7CgkJZm9yIChpbnQgaT0yOyBpPG47IGkrKyl7CgkJCXJlc3VsdCA9IGN1cnJlbnQgKyBsYXN0OwoJCQlsYXN0ID0gY3VycmVudDsKCQkJY3VycmVudCA9IHJlc3VsdDsKCQl9CgkJcmV0dXJuKHJlc3VsdCk7Cgl9CgoKfQ==