int f(int x) { ... } int memoized_f(int x) { static int lastx = 0, lastf = 38; /* if we know that f(0)=38 */ if (x != lastx) { lastx = x; lastf = f(lastx); } return lastf; }