/// PPP8  exercise 3

#include "std_lib_facilities.h"

class Fibonacci {
public:
    unsigned long long seed1;
    unsigned long long seed2;
    unsigned fibSize;
    vector<unsigned long long> fibVec;
    Fibonacci(unsigned long long,
              unsigned long long,
              unsigned);
    void print();
};

Fibonacci::Fibonacci(unsigned long long a, unsigned long long b, unsigned sz)
    : seed1(a), seed2(b), fibSize(sz) {
    fibVec.push_back(seed1);
    fibVec.push_back(seed2);
    for(int i = 0; i < fibSize-2; ++i)
        fibVec.push_back(fibVec[i]+fibVec[i+1]);
}

void Fibonacci::print() {
    for( unsigned long long v : fibVec ) cout << v << ' ';
}

int main() {
    Fibonacci f(0,1,100);
    f.print();
}

