Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <vector>
- std::vector<int> Fib(int n) {
- if (n == 1) {
- return {0};
- }
- if (n == 2) {
- return {0, 1};
- }
- std::vector<int> p(n);
- p[0] = 0;
- p[1] = 1;
- int u = 0, v = 1;
- for_each(p.begin() + 2, p.end(), [&u, &v](int &t) { // с третьего элемента применяем lambda функцию, передаём в неё u, v
- t = u + v; // ответ для текущего элемента
- u = v;
- v = t; }); // двигаем v на текущую сумму, а u на предыдущую
- return p;
- }
- int main() {
- int n;
- std::cin >> n;
- std::vector<int> b = Fib(n);
- for (int i = 0; i < n; ++i) { // вывод
- std::cout << b[i] << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement