Задача 14: заполнить вектор числами Фибоначчи

Задачи Олимпиады для языка C

Задача 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;
}