hey,
wie in der Überschrift angegeben, wollte ich die Fibonacci-Folge (n = 4 Millionen) berechnen und von den Termen nur die geraden Terme aufsummieren.
Dazu der folgende Code :
nun, zu meinem Problem: das Programm kompiliert zwar, aber wenn ich es ausführe passiert rein gar nichts. Kann mir jmd. vtl. sagen woran das liegen kann?
Hab im Internet vorhin gelesen, dass die rekursive fib()-Methode, die die Fibonacci-Folge berechnen soll, für große n sehr ineffiezient sein soll...stimmt das? falls ja, so würde das erklären, warum das so lange dauert....falls nicht, dann muss ich irgendwo einen Fehler gemacht haben....
wie in der Überschrift angegeben, wollte ich die Fibonacci-Folge (n = 4 Millionen) berechnen und von den Termen nur die geraden Terme aufsummieren.
Dazu der folgende Code :
Java:
public class Problem2 {
static int sum = 0;
static int cur = 0;
//Methode zur Berechnung der Fibonacci-Folge
public int fib(int n){
if(n == 0){
return 0 ;
}
else if(n == 1){
return 1;
}
else{
return fib(n-1) + fib(n-2);
}
}
//Methode, die tatsächliche Summe bildet
//Grenze = 4 Millionen wird als Parameter übergeben
public int berechnung(int grenze){
//Schleifenkopf mit oberer Grenze und Zählvariable
for(int i= 1; i < grenze; i++){
//für jeden Wert i wird die obige fib-Methode aufgerufender
//in der fib-Methode berechnete Wert wird in cur geschrieben
cur = fib(i);
//Prüfe, ob der in cur gespeicherte Wert gerade ist
if(cur % 2 == 0){
sum += cur; //Falls gerade, so speichere in sum
}
}
return sum; //gebe am Ende das Ergebnis aus
}
public static void main(String[] args){
Problem2 pr2 = new Problem2();
System.out.println("Die Summe der geraden Terme unter 4 Mil. : " + pr2.berechnung(4000000));
}
}
nun, zu meinem Problem: das Programm kompiliert zwar, aber wenn ich es ausführe passiert rein gar nichts. Kann mir jmd. vtl. sagen woran das liegen kann?
Hab im Internet vorhin gelesen, dass die rekursive fib()-Methode, die die Fibonacci-Folge berechnen soll, für große n sehr ineffiezient sein soll...stimmt das? falls ja, so würde das erklären, warum das so lange dauert....falls nicht, dann muss ich irgendwo einen Fehler gemacht haben....
Zuletzt bearbeitet: