현재 오일러 프로젝트의 일부 문제를 해결하려고하고 있지만 두 번째 문제가 있습니다.피보나치 벡터가있는 시퀀스
이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보다 낮은 값으로 fibonacci 시퀀스의 모든 정수 합계를 얻는 것입니다. 짝수.
감사합니다.
적절한 함수를 호출하지 않고 벡터의 크기를 조정할 수 없습니다. 그게 문제가 될 수있는 정보를 알려주는 충분한 정보 여야합니다. 둘째, 이것은'std :: accumulate'과 [Binet 's formula] (http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibFormula.html#section1)를 사용하는 한 줄짜리 프로그램입니다.) – PaulMcKenzie
* 과제는 피보나치 시퀀스의 모든 정수의 합을 짝수 값 인 4,000,000보다 낮은 값으로 얻는 것입니다. * 또한 위 공식을 사용하면 벡터를 사용하여 문제를 해결할 필요가 없습니다. 코멘트에, 그리고 그냥 루프, 합계에 추가합니다. – PaulMcKenzie