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 Xy Yser negativo? Eso probablemente también invalidará todas las respuestas existentes.
8,1,8,9y 9,1,8,9asegurarse de que el N=1manejo de casos detecte el Xvalor no repetido y el Yvalor. (Si desea manejar 0,0casos, debe agregar eso también.)
N==1Es un caso tan extraño.