diff options
Diffstat (limited to '02-Even-Fibonacci-numbers/fib.c')
-rw-r--r-- | 02-Even-Fibonacci-numbers/fib.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/02-Even-Fibonacci-numbers/fib.c b/02-Even-Fibonacci-numbers/fib.c new file mode 100644 index 0000000..915fccd --- /dev/null +++ b/02-Even-Fibonacci-numbers/fib.c @@ -0,0 +1,33 @@ +#include <stdlib.h> +#include <stdio.h> +#include <math.h> + +const long int MAX = 4 * pow(10, 6); +int *fib; + +int main(){ + // Intialize sequence with first two terms + fib = (int *) malloc (2 * sizeof(int)); + fib[0] = 1; + fib[1] = 1; + + // loop counter + int k = 1; + // sum of even terms + int sum = 0; + //next term in sequence + int next; + while(1){ + next = fib[k] + fib[k - 1]; + printf("%d\n", next); + if(next > MAX) + break; + if(next % 2 == 0) + sum += next; + k++; + fib = (int *) realloc (fib, (k + 1) * sizeof(int)); + fib[k] = next; + } + printf("The sum of the even terms is %d\n", sum); + return 0; +} |