Die N-Bonacci-Sequenz, die ursprünglich von @DJMcMayhem in dieser Frage erfunden wurde , ist eine Sequenz, die erzeugt wird, indem mit den ganzen Zahlen 0 und 1 begonnen und dann die vorherigen N-Zahlen addiert werden, um die nächste Zahl zu erzeugen. Die spezielle N-Bonacci-Sequenz ist eine N-Bonacci-Sequenz, die mit einem anderen Zahlenpaar als 0 und 1 beginnt und als X und Y bezeichnet wird. Wenn N größer als die Anzahl der bereits in der Sequenz enthaltenen Terme ist, fügen Sie einfach alle verfügbaren hinzu Begriffe.
So hat beispielsweise die normale Fibonacci-Sequenz ein N von 2 (nimmt die beiden vorherigen Elemente) und ein X und Y von 0 und 1 oder 1 und 1, je nachdem, wen Sie fragen.
Deine Aufgabe:
Sie müssen ein Programm oder eine Funktion schreiben, die prüft, ob eine eingegebene Ganzzahl (A) Teil der speziellen N-Bonacci-Sequenz ist, die von den nächsten drei Ganzzahlen erzeugt wird (wobei die zweite Eingabe als N und die dritte und vierte als X und Y verwendet wird). . Stellen Sie sicher, dass Sie den Sonderfall N = 1 behandeln.
Eingang:
Vier nicht negative ganze Zahlen, A, N, X und Y.
Ausgabe:
Ein Wahrheits- / Falschwert, der angibt, ob A Teil der N-Bonacci-Sequenz ist, die durch die Eingänge N, X und Y erzeugt wird.
Testfälle:
Input: Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy
12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.
Wertung:
Dies ist Code-Golf , also gewinnt die niedrigste Punktzahl in Bytes.
N=1, möchten Sie dies möglicherweise in der Frage angeben, da viele Antworten (einschließlich aller aktuellen Antworten, glaube ich) eine Fehlerbedingung aufweisen, die eine streng zunehmende Reihe voraussetzt. Kann Xund Ykann auch negativ sein? Das wird wahrscheinlich auch alle vorhandenen Antworten ungültig machen.
8,1,8,9und 9,1,8,9sicherstellen, dass die Fallbehandlung sowohl N=1den nicht wiederholten XWert als auch den YWert erkennt . (Wenn Sie 0,0Fälle behandeln möchten, sollten Sie das auch hinzufügen.)
N==1ist so ein komischer Fall.