upt-pt-labs/lab13/2.c
Denis Nuțiu 9b9abb6bb4 updating
2016-05-26 13:37:14 +03:00

28 lines
591 B
C

#include <stdio.h>
unsigned long int fib(unsigned long int n) {
unsigned int i;
static long int f[1000] = {0}; // better make it static than global...
f[0] = 0;
f[1] = 1;
if (f[n]) {
printf("Reused\n");
return (unsigned long int ) f[n];
}
if (n > 2) {
for (i = 2; i <= n; i++) {
if (!f[i]) f[i] = f[i - 1] + f[i - 2];
}
}
return (unsigned long int ) f[n];
}
int main() {
printf("%ld\n", fib(11));
printf("%ld\n", fib(10));
printf("%ld\n", fib(12));
printf("%ld\n", fib(12));
return 0;
}