int main() { std::cout << fib_r(15) << '\n'; std::cout << fib_i(15) << '\n'; auto fib = fib_g(20); for (auto i : fib) std::cout << i << ' '; return 0; }
int fib_r(int n, int a, int b) { if(n==0) return a; if(n==1) return b; if(n==2) return a+b; return fib_r(n-1,b,a+b); }
int fib_r(int n) { return n < 2 ? n : fib_r(n - 1) + fib_r(n - 2); }
int fib(int n) { return fib_r(n,0,1); }