La secuencia N-bonacci, originalmente inventada por @DJMcMayhem en esta pregunta , es una secuencia generada al comenzar con los enteros 0 y 1, y luego agregar los números N anteriores para generar el siguiente número. La secuencia especial de N-bonacci es una secuencia de N-bonacci que comienza con un par de números distintos de 0 y 1, que se denominarán X e Y. Si N es mayor que el número de términos que ya están en la secuencia, simplemente agregue todos los disponibles condiciones.
Entonces, por ejemplo, la secuencia normal de Fibonacci tiene un N de 2 (toma los dos elementos anteriores) y una X e Y de 0 y 1, o 1 y 1, dependiendo de a quién le pregunte.
Tu tarea:
Debe escribir un programa o función que verifique si un entero ingresado (A) es parte de la secuencia especial de N-bonacci generada por los siguientes tres enteros (utilizando la segunda entrada como N, y el tercero y cuarto como X e Y) . Asegúrese de manejar el caso especial de N = 1.
Entrada:
Cuatro enteros no negativos, A, N, X e Y.
Salida:
Un valor verdadero / falso que indica si A es parte de la secuencia N-bonacci generada por las entradas N, X e Y.
Casos de prueba:
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.
Puntuación:
Este es el código de golf , por lo que gana la puntuación más baja en bytes.
N=1
, es posible que desee mencionarlo en la pregunta, ya que muchas respuestas (incluidas todas las respuestas actuales, creo) tendrán una condición de falla que supone una serie estrictamente creciente. Además, ¿puede X
y Y
ser negativo? Eso probablemente también invalidará todas las respuestas existentes.
8,1,8,9
y 9,1,8,9
asegurarse de que el N=1
manejo de casos detecte el X
valor no repetido y el Y
valor. (Si desea manejar 0,0
casos, debe agregar eso también.)
N==1
Es un caso tan extraño.