Um zu prüfen ob es die "Original" Fibonacci Reihe ist würde ich schauen ob das 1.Element 0 und das 2. Element 1 ist, danach kannst du ja jedes Element mit f(n) = f(n-1) + f(n-2) prüfen.
EDIT
Aso leider erst jetzt gesehen, das man auf einen AUSSCHNITT der Original Reihe prüfen soll. Naja dann würde ich zuerst schauen ob die erste Zahl Teil der Original Fibnoacci-Reihe ist und danach prüfen ob das übergebene Array die Fibnoacci Eigenschaften erfüllt (f(n) = f(n-1) + f(n-2)).
EDIT 2
Bevor die Frage auftaucht wie du weißt ob eine Zahl Teil der Original Fibnoacci-Reihe ist, hier zwei Lösungsvorschläge:
1.
Die Original-Reihe solang generieren bis man bei der gesuchten Zahl angelangt ist oder sie überschritten hat.
-> Langsam
2.
Mit dieser Formel:
http://de.wikipedia.org/wiki/Fibonac....C3.9Fe_Zahlen rausfinden ob eine Zahl Teil der Fibonacci-Reihe ist:
Code:
private static boolean isFibByFormula(long num) {
double power = (double)num * (double)num;
double first = 5 * power + 4;
double second = 5 * power - 4;
return isWholeNumber(Math.sqrt(first)) || isWholeNumber(Math.sqrt(second));
}
(Geklaut von:
http://stackoverflow.com/questions/3...umber-homework)