I am working on project euler problem 2, as below.
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.
Ans is 4613732. Can't figure out why my answer is 2461277582?
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
|
#include <iostream>
#include <vector>
int main()
{
unsigned sum = 0;
const unsigned n = 4000000;
std::vector<unsigned>vect;
vect.push_back(1);
vect.push_back(2);
vect.resize(n);
int j = 0;
for (int i{ 2 };i < n; i++)
{
vect[i] = vect[j] + vect[j + 1];
j++;
}
for (int i{ 0 }; i < n; i++)
{
if (vect[i] % 2 == 0)
{
sum += vect[i];
}
}
std::cout << sum;
}
| |