aboutsummaryrefslogtreecommitdiffstats
path: root/fib.c
blob: 915fccd8616cafce824d0bbc7a56caa37ea614d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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;
}