[C++] Project Euler - 2. Aufgabe

Hi Leute,

um mich in C++ einzuarbeiten, habe ich mich bei Project Euler registriert und versuche dort die Aufgaben zu lösen. Aber ich hänge schon bei der zweiten Aufgabe und finde einfach meinen Fehler nicht.
Das ist die Aufgabenstellung:
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, ...

Find the sum of all the even-valued terms in the sequence which do not exceed four million.
Soweit ich das verstanden habe, soll man die Summer aller Zahlen in der Fibonaccifolge finden, die kleiner sind als 4 Millionen.

Dies ist mein Quelltext:
Code:
#include <D:\Programme\Borland C++ Compiler\Include\iostream.h>

void main()
{
	//Variablen initialisieren
	int sum=0, i;
	int fibonacci[49];
	
	//1. und 2. Zahl der Fibonaccireihe festlegen
	fibonacci[0]=1;
	fibonacci[1]=2;
	
	//Fibonacci-Reihe erstellen bis zur 34. Zahl
	//Angefangen bei der 3. Zahl, da die 1. und 2. Zahl schon gesetzt sind
	for(i=2;i<50;i++)
	{
		fibonacci[i]=fibonacci[i-1]+fibonacci[i-2];
	}
	
	//Zählvariable zurücksetzen
	i=0;
	
	//Die Summe aller Zahlen finden, die kleiner als 4 Millionen sind
	while (fibonacci[i]<4000000)
	{
		sum += fibonacci[i];
		
		i++;
	}
	
	cout << sum << endl;
}
Ausgeben tut mir das Programm: 9227463
 
"...the sum of all even-valued terms in..."

Die Summe aller geraden Zahlen in der Zahlenfolge ;)
 
Mist, da kommt mir einer zuvor ;)
Hab ein "gegencheck" Script laufen lassen - die Summe ist bis dahin richtig. Also nur noch so anpassen, dass nur die geraden addiert werden.
Code:
next(1,2,3).
next(Fib1,Fib2,Fib3):-Fib3 is Fib1+Fib2.

sum(Sum,Limit):-sum(_,_,Sum,Limit).

sum(Fib1,Fib2,Sum,Limit):-next(Fib1,Fib2,Next),Next<Limit,sum(Fib2,Next,Subsum,Limit),Sum is Subsum+Fib1+Fib2,!
                        ;next(Fib1,Fib2,Next), Next<Limit,Sum is Next.
Die richtige Antwort ist ~ 4xxxxxx
 
Danke ein_lama

Nach einem Übersetzungsfehler hab ich nicht gesucht.
Ok, damit ist dieses Problem dann auch gelöst.
 
Original von Spyx
Danke ein_lama

Nach einem Übersetzungsfehler hab ich nicht gesucht.
Ok, damit ist dieses Problem dann auch gelöst.

Hehe, das passiert mir bei Euler andauernd. Ich hab eine Lösung, die nicht stimmt und ich brüte und brüte darüber, warum die Seite sie nicht akzeptiert und wo mein Fehler im Algo ist.

Und am Ende seh ich, dass ich die Hälfte der Aufgabe gar nicht bearbeitet hab ;D
 
Zurück
Oben