В настоящее время я пытаюсь решить некоторые проблемы проектов Euler, но в настоящее время я застрял во второй проблеме. Вот то, что я прямо сейчас:Fibonacci Последовательность с векторами
void p002()
{
unsigned int result = 0;
std::vector<int> fibonacci{ 1,2 };
for (int i = 2; fibonacci.at(i) < 4000000; i++)
{
fibonacci.at(i) = fibonacci.at(i - 1) + fibonacci.at(i - 2); //<- Doesn't work
if (fibonacci.at(i) % 2 == 0)
result += fibonacci.at(i);
}
std::cout << result;
}
Может кто-то помочь мне и скажите мне, почему это одна линия, кажется, не работает? (Я получаю сообщение об ошибке «abort(), вызванное« ошибкой при попытке выполнить код ».)
В случае, если кто-либо задается вопросом: задача состоит в том, чтобы получить сумму всех целых чисел последовательности фибоначчи с более низким значением, чем 4 000 000, которые даже многозначный.
Спасибо!
вектор не может изменять размеры без необходимости вызова соответствующих функций. Это должно быть достаточно информации, чтобы вы знали, что может быть проблемой. Во-вторых, это один лайнер с использованием 'std :: accumulate' и [формулы Бине] (http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibFormula.html#section1) – PaulMcKenzie
* Задача состоит в том, чтобы получить сумму всех целых чисел последовательности фибоначчи с более низким значением, чем 4 000 000, которые являются четными. * - Кроме того, для решения проблемы вам не нужен вектор, если вы использовали приведенную выше формулу в комментарии, и просто цикл, добавив к итогу. – PaulMcKenzie