Wir alle kennen die berühmte Fibonacci-Sequenz , die mit 0
und beginnt 1
, und jedes Element ist die Summe der beiden vorhergehenden. Hier sind die ersten Begriffe (OEIS A000045 ):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584
Bei einer positiven Ganzzahl geben Sie die nächstliegende Zahl der Fibonacci-Sequenz nach folgenden Regeln zurück:
Die nächstliegende Fibonacci-Zahl ist definiert als die Fibonacci-Zahl mit der geringsten absoluten Differenz zur angegebenen ganzen Zahl. Zum Beispiel
34
ist die nächstliegende Fibonacci-Zahl30
, weil|34 - 30| = 4
, die kleiner ist als die zweitnächste21
, für die|21 - 30| = 9
.Wenn die angegebene Ganzzahl zur Fibonacci-Sequenz gehört, ist die nächstgelegene Fibonacci-Zahl genau sie selbst. Beispielsweise ist die nächstliegende Fibonacci-Zahl
13
genau13
.Im Falle eines Gleichstands können Sie entweder eine der Fibonacci-Zahlen ausgeben, die beide der Eingabe am nächsten liegen, oder einfach beide ausgeben. Zum Beispiel, wenn der Eingang
17
, die alle der folgenden gelten:21
,13
oder21, 13
. Falls Sie beide zurücksenden, geben Sie bitte das Format an.
Es gelten Standardlücken . Sie können die Eingabe und Ausgabe über eine beliebige Standardmethode vornehmen . Ihr Programm / Ihre Funktion darf nur Werte bis 10 8 verarbeiten .
Testfälle
Eingabe -> Ausgabe 1 -> 1 3 -> 3 4 -> 3 oder 5 oder 3, 5 6 -> 5 7 -> 8 11 -> 13 17 -> 13 oder 21 oder 13, 21 63 -> 55 101 -> 89 377 -> 377 467 -> 377 500 -> 610 1399 -> 1597
Wertung
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes in jeder Sprache !
n
impliziert n ≥ 1
.