# What is going wrong?

This topic is 2458 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

 #include <iostream> #include <conio.h> using namespace std; void main() { long sum = 0, next = 0, prev = 1, curr = 2; do { next = curr + prev; prev = curr; curr = next; if(curr % 2 == 0) { sum += curr; } } while(curr < 4000000); cout << sum; getch(); }; 

Just curious why this is not working. It's from project Euler:

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.

##### Share on other sites
What do you mean with "this is not working"? A runtime error? Or just a wrong result?

Regarding to the last possibility I see at least this: The initial value of curr is 2 and hence even, but it is not considered in the summation. Initialize sum with 2 to overcome this issue.

##### Share on other sites
The Fibonacci sequence starts with two 1s. So the first ten terms are:

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

*Edit: Never mind. I missed the "sum of even terms" part. Reading comprehension fail. Edited by powell0

##### Share on other sites
It's giving an incorrect result.

##### Share on other sites

The Fibonacci sequence starts with two 1s. So the first ten terms are:

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

*Edit: Never mind. I missed the "sum of even terms" part. Reading comprehension fail.

lol actually that worked....the numbers need to initially be set to 1.

• 22
• 11
• 17
• 11
• 13