4 Stimmen

Fibonacci-Folge-Algorithmus

Ich versuche, die erste Zahl in der Fibonacci-Folge zu finden, die N Ziffern enthält (wobei N irgendwo im Bereich zwischen 500 und 2000 liegt). Ich versuche, dies mit dem folgenden Code zu tun:

BigInteger num = BigInteger.valueOf(2);
BigInteger num1 = BigInteger.ONE;
BigInteger num2 = BigInteger.ONE;
int record = 0;
BigInteger TEN = BigInteger.valueOf(10);

public BigInteger run()
{
    BigInteger temp = BigInteger.ZERO;
    while(num2.compareTo(TEN.pow(SomeN - 1)) < 0)
    {
        if(num2.compareTo(TEN.pow(record + 1)) >= 0)
        {
            System.out.println(""+record);
            record++;
        }

        temp = num1.add(num2);
        num1 = num2;
        num2 = temp;

        num = num.add(BigInteger.ONE);
    }
    System.out.println(""+num);
    System.out.println(""+num2);
    return num2;
}

Das Problem ist, dass die Antwort, die ich erhalte, wenn ich auf 1500 Ziffern prüfe, offensichtlich falsch ist. Ich weiß nicht, wie die Antwort lauten soll, und ich habe sogar die Antworten in der unmittelbaren Umgebung überprüft, für den Fall, dass mein Algorithmus um eine 10er-Potenz abweicht (d. h. ich habe 1499 Ziffern und 1501 überprüft), aber ohne Erfolg. Weiß jemand, was falsch ist?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X