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.
#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!