Hier ist der Code, den ich für die Suche nach der n-ten Fibonacci-Zahl hat geschrieben:Unsigned Long Long geht nicht über die 93. Fibonacci-Nummer hinaus?
unsigned long long fib(int n)
{
unsigned long long u = 1, v = 1, t;
for(int i=2; i<=n; i++)
{
t = u + v;
u = v;
v = t;
}
return v;
}
Während der Algorithmus ziemlich schnell läuft, beginnt die Ausgabe an ausflippen, wenn n> 93. Ich denke/weiß, dass es wegen der 64-Bit-Größe des unsigned long long ist. Ich bin neu in C++, aber gibt es Möglichkeiten, dies zu umgehen, so dass ich die Antwort von etwas wie fib (9999) bekommen kann?
Dank
Interessant. Ich war überrascht, dass die Fibonacci-Zahlen schnell genug gewachsen sind, dass F (94)> ~ 2^63. –
Errr ... wie kann dieser Code ohne Klammern für die 'for' Schleife funktionieren? –
@Everyone Leider habe ich einige Fehler bei der Eingabe des Codes gemacht. Dies ist jedoch nur ein Fehler beim Transkribieren. fib (94) gibt mir immer noch eine Frankenstein-Nummer ... –