#include int main() { int x; extern int fib(int x); while (scanf("%d", &x) == 1) printf("%d\n", fib(x)); return 0; } #define memosize 100 int fibmemo[memosize]; /* default init to 0 */ int fib(int x) { if (x < 3) { return 1; } else if (x < memosize && fibmemo[x]) { return fibmemo[x]; } else if (x < memosize) { fibmemo[x] = fib(x-1) + fib(x-2); return fibmemo[x]; } else { return fib(x-1) + fib(x-2); } }