Задача 14: При помощи функтора заполнить вектор числами Фибоначчи. (Число Фибоначчи равно сумме двух последних цифр.)
Решение с использованием языка CPP:
#include <algorithm> #include <iostream> #include <vector> #include <iterator> using namespace std; /* При помощи функтора заполнить вектор числами Фибоначчи. */ class addFib { int number1; int number2; public: addFib(int number1, int number2){ this->number1=number1; this->number2=number2; } int operator()() { int n3; n3=number1 + number2; number1=number2; number2=n3; return n3; } }; int main() { vector <int> v1(20,1); vector<int>::iterator c1_Iter; cout<<"\n"; //алгоритм generate_n вызывает функтор в объекте addFib generate_n(v1.begin()+2, v1.size()-2, addFib(1,1)); cout<<"\n"; c1_Iter = v1.begin(); for(; c1_Iter != v1.end(); c1_Iter++){ cout << " " << *c1_Iter; } cout<<"\n"; return 0; }