1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifndef _fib_h 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _fib_h 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottclass Fibonacci 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott public: 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott Fibonacci() : v1(0), v2(1) {} 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott inline int operator()(); 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott private: 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott int v1; 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott int v2; 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}; 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottinline int 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick ScottFibonacci::operator()() 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott int r = v1 + v2; 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott v1 = v2; 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott v2 = r; 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott return v1; 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif // _fib_h 22