Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

**Running time:** Unknown

**Assessment:** Inelegant.

This took me an embarrassingly long time to get right. With the exception of Problem 1, I hadn’t written any code in a few years. As noted before, I hadn’t started measuring execution time yet, so I’m not sure how long it took to run, but it’s basically instantaneous.

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 |
#include <iostream> using namespace std; int main() { int total = 0; //3 variables to create the Fibonacci sequence from 1 to X int one = 1; int two = 2; int three = 0; while (two <= 4000000) { three = one + two; if (two % 2 == 0) total += two; one = two; two = three; } cout << total; return 0; } |

Thankyou for this. I was trying to make a vector and sum each number in the vector! I couldn’t achieve this method, too advanced, when the answer was so simple with an if statement! Thanks!

why is the while loop only upto 4000000

I did it slightly differently, my version used only two variables:

a += b;

b += a;

if (a % 2 == 0){ total += a;}

if (b % 2 == 0){total += b;}

this is what was in my while loop, I think yours is a little more elegant though, I am a beginner and I love seeing people write the same solution more efficiently, it is always a learning experience

Thanks!