Todos estamos familiarizados con la famosa secuencia de Fibonacci , que comienza con 0
y 1
, y cada elemento es la suma de los dos anteriores. Estos son los primeros términos (OEIS A000045 ):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584
Dado un número entero positivo , devuelve el número más cercano de la secuencia de Fibonacci, según estas reglas:
El número de Fibonacci más cercano se define como el número de Fibonacci con la menor diferencia absoluta con el entero dado. Por ejemplo,
34
es el número de Fibonacci más cercano a30
, porque|34 - 30| = 4
, que es más pequeño que el segundo más cercano21
, para el cual|21 - 30| = 9
.Si el entero dado pertenece a la secuencia de Fibonacci, el número de Fibonacci más cercano es exactamente el mismo. Por ejemplo, el número de Fibonacci más cercano a
13
es exactamente13
.En caso de empate, puede optar por emitir cualquiera de los números de Fibonacci que estén más cerca de la entrada o simplemente emitirlos a ambos. Por ejemplo, si la entrada es
17
, todos los siguientes son válidos:21
,13
o21, 13
. En caso de que los devuelva a ambos, mencione el formato.
Se aplican las lagunas predeterminadas . Puede tomar entrada y proporcionar salida a través de cualquier método estándar . Su programa / función solo debe manejar valores de hasta 10 8 .
Casos de prueba
Entrada -> Salida 1 -> 1 3 -> 3 4 -> 3 o 5 o 3, 5 6 -> 5 7 -> 8 11 -> 13 17 -> 13 o 21 o 13, 21 63 -> 55 101 -> 89 377 -> 377 467 -> 377 500 -> 610 1399 -> 1597
Tanteo
Este es el código de golf , por lo que gana el código más corto en bytes en cada idioma .
n
implica n ≥ 1
.