ilyasizov

Untitled

Jun 23rd, 2021
610
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <algorithm>
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. std::vector<int> Fib(int n) {
  6.     if (n == 1) {
  7.         return {0};
  8.     }
  9.     if (n == 2) {
  10.         return {0, 1};
  11.     }
  12.     std::vector<int> p(n);
  13.     p[0] = 0;
  14.     p[1] = 1;
  15.     int u = 0, v = 1;
  16.     for_each(p.begin() + 2, p.end(), [&u, &v](int &t) { // с третьего элемента применяем lambda функцию, передаём в неё u, v
  17.         t = u + v; // ответ для текущего элемента
  18.         u = v;
  19.         v = t; }); // двигаем v на текущую сумму, а u на предыдущую
  20.     return p;
  21. }
  22.  
  23. int main() {
  24.     int n;
  25.     std::cin >> n;
  26.     std::vector<int> b = Fib(n);
  27.     for (int i = 0; i < n; ++i) { // вывод
  28.         std::cout << b[i] << " ";
  29.     }
  30.     return 0;
  31. }
RAW Paste Data