Nigdy nie lubiłem C++98, ale C++{11,14} chyba polubię. Jakieś takie toto mniej odstraszające, a z boost da się robić ciekawe rzeczy…
#include <iostream> #include <boost/range/irange.hpp> using namespace std; int main() { auto fib = [] (int n) { int a = 0, b = 1; for (auto i: boost::irange(0, n)) { swap(a, b); b += a; } return a; }; for (auto i: boost::irange(0, 20)) cout << fib(i) << " "; }
$ ./lambda.exe
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181