La sequenza N-bonacci, originariamente inventata da @DJMcMayhem in questa domanda , è una sequenza generata iniziando con gli interi 0 e 1, quindi aggiungendo i precedenti numeri N per generare il numero successivo. La speciale sequenza N-bonacci è una sequenza N-bonacci che inizia con una coppia di numeri diversi da 0 e 1, che saranno denominati X e Y. Se N è maggiore del numero di termini già presenti nella sequenza, è sufficiente aggiungere tutti i disponibili termini.
Quindi, ad esempio, la normale sequenza di fibonacci ha una N di 2 (prende le due voci precedenti) e una X e Y di 0 e 1, oppure 1 e 1, a seconda di chi chiedi.
Il tuo compito:
Devi scrivere un programma o una funzione che controlli se un intero immesso (A) fa parte della sequenza speciale N-bonacci generata dai successivi tre numeri interi (usando il secondo input come N e il terzo e il quarto come X e Y) . Assicurati di gestire il caso speciale di N = 1.
Ingresso:
Quattro numeri interi non negativi, A, N, X e Y.
Produzione:
Un valore di verità / falsità che indica se A fa parte della sequenza N-bonacci generata dagli input N, X e Y.
Casi test:
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.
punteggio:
Questo è code-golf , quindi vince il punteggio più basso in byte.
N=1, potresti volerlo chiamare nella domanda, dal momento che molte risposte (comprese tutte le risposte attuali, penso) avranno una condizione di fallimento che presuppone una serie strettamente crescente. Inoltre, può Xed Yessere negativo? Ciò probabilmente invaliderà anche tutte le risposte esistenti.
8,1,8,9e 9,1,8,9assicurarti che la N=1gestione dei casi rilevi il Xvalore non ripetuto e il Yvalore. (Se si desidera gestire i 0,0casi, è necessario aggiungere anche quello.)
N==1è un caso così strano.