Sekwencja N-bonacci, pierwotnie wymyślona przez @DJMcMayhem w tym pytaniu , jest sekwencją generowaną przez rozpoczęcie od liczb całkowitych 0 i 1, a następnie dodanie poprzednich N liczb w celu wygenerowania następnej liczby. Specjalna sekwencja N-bonacci jest sekwencją N-bonacci rozpoczynającą się od pary liczb innych niż 0 i 1, które zostaną nazwane X i Y. Jeśli N jest większe niż liczba terminów już w sekwencji, po prostu dodaj wszystkie dostępne warunki.
Na przykład normalna sekwencja Fibonacciego ma N równą 2 (bierze poprzednie dwa elementy) oraz X i Y równe 0 i 1 lub 1 i 1, w zależności od tego, kogo zapytasz.
Twoje zadanie:
Masz napisać program lub funkcję, która sprawdza, czy wprowadzona liczba całkowita (A) jest częścią specjalnej sekwencji N-bonacci generowanej przez kolejne trzy liczby całkowite (używając drugiego wejścia jako N, a trzeciego i czwartego jako X i Y) . Upewnij się, że zajmujesz się przypadkiem specjalnym N = 1.
Wejście:
Cztery nieujemne liczby całkowite, A, N, X i Y.
Wynik:
Wartość prawda / fałsz wskazująca, czy A jest częścią sekwencji N-bonacci generowanej przez dane wejściowe N, X i Y.
Przypadki testowe:
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.
Punktacja:
To jest golf golfowy , więc wygrywa najniższy wynik w bajtach.
N=1
, możesz przywołać je w pytaniu, ponieważ wiele odpowiedzi (w tym wszystkie aktualne odpowiedzi, jak sądzę) będzie miało warunek niepowodzenia, który zakłada ściśle rosnącą serię. Czy może X
i może Y
być negatywne? Prawdopodobnie spowoduje to również unieważnienie wszystkich istniejących odpowiedzi.
8,1,8,9
i 9,1,8,9
upewnić się, że N=1
obsługa spraw wykrywa nie powtarzającą się X
wartość, jak również Y
wartość. (Jeśli chcesz zająć się 0,0
sprawami, powinieneś również to dodać.)
N==1
to taki dziwny przypadek.