Ich versuche gerade einige Probleme der Euler-Projekte zu lösen, bin aber momentan am zweiten Problem festgefahren. Hier ist es, was ich jetzt:Fibonacci Sequenz mit Vektoren
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;
}
Könnte mir jemand helfen und mir sagen, warum diese eine Zeile nicht zu funktionieren scheint? (Ich bekomme einen "abort()" -Fehler, wenn ich versuche, den Code auszuführen.)
Falls sich jemand wundert: Die Aufgabe ist es, die Summe aller ganzen Zahlen der Fibonacci-Folge mit einem niedrigeren Wert als 4.000.000 zu erhalten sogar geschätzt.
Danke!
Vektoren können ihre Größe nicht ändern, ohne dass Sie die entsprechende (n) Funktion (en) aufrufen. Das sollte genug Informationen sein, um Sie wissen zu lassen, was das Problem sein könnte. Zweitens ist dies ein Einzeiler, der 'std :: accumulate' und [Binets Formel] verwendet (http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibFormula.html#section1) – PaulMcKenzie
* Die Aufgabe besteht darin, die Summe aller ganzen Zahlen der Fibonacci-Folge mit einem niedrigeren Wert als 4.000.000 zu erhalten, die gerade bewertet werden. * - Sie brauchen auch keinen Vektor, um das Problem zu lösen, wenn Sie die obige Formel verwenden im Kommentar, und nur Schleife, Hinzufügen zu einer Gesamtmenge. – PaulMcKenzie