Abwandlung der Fibonacci Folge

Sabiii

Neues Mitglied
Heey,
ich wollte eine Abwandlung der Fibonacci Folge machen, bei der man nicht nur die zwei vorherigen Zahlen addiert, also fib(i - 1) + fib(i - 2), sondern 2 * fib(i - 1) + 5 * fib(i - 2) rechnet.

Das wäre mein Code mit ner rekursiven Lösung:
Java:
   public static long gNaive(int i) {
        if(i == 0) {
            return i;
        } else if(i == 1) {
            return i;
        } else {
            return (2 * gNaive(i - 1) + 5 * gNaive(i - 2));
        }
    }

Es funktioniert auch teilweise, jedoch bekomme ich dann manchmal z.B. bei i = 46 negative Lösungen raus, wenn ich den gleichen Code aber mit der normalen Fibonacci Folge mache kommt das richtige Ergebnis raus.
Weiß jemand vielleicht warum das so ist und könnte mir bitte helfen?
Danke schonmal im Voraus
 
du hast 2 hoch 31 positive zahlen in einem int

wenn du aber 2 hoch 31 + 1 rechnest hast du -2 hoch 31 +1 dh der fängt von hinten wieder an zu zählen, deine zahl ist zu groß geworden
bei floats und doubles kommst du in "infinity" rein wenn du zu große zahlen hast
 

Zurück
Oben