long f(int n) {
    cache.put(1, 1L);
    cache.put(2, 2L);
    for (int i = 3; i <= n; i++) {
      if (cache.get(i) == null) {
        cache.put(i, cache.get(i - 1) + cache.get(i - 2));
      }
    }

    return cache.get(n);
  }