blob: 80b72b156b6cc583dfa7de93c9f8f47912f74906 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include "fibo.hh"
long Fibo::operator()(int x)
{
if (x <= 1)
return x;
std::optional<long> opt_lookup_table = lookup_table_.get(x);
if (opt_lookup_table)
return *opt_lookup_table;
auto res = (*this)(x - 1) + (*this)(x - 2);
lookup_table_.set(x, res);
return res;
}
|