Задача 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;
}
  • Крупнейшая в Европе школа английского языка

    Промокоды, акции и подарки, чтобы Ваше обучение было не только интересным, но и выгодным. Закажите пробный урок уже сейчас!

    skyeng.ru
  • Онлайн школа английского языка

    Английский по скайпу от 680р за урок, без заучивания правил. Эффективно! Удобно! Выгодно! Начните обучение прямо сейчас.

    melene.ru
  • Школа английского языка по Skype

    Персональные занятия по разумным ценам. Бесплатные ресурсы для студентов: разговорные клубы, блог, вебинары, книги, тест на определение уровня английского. Пробный урок бесплатно!

    englex.ru