Nous connaissons tous la célèbre séquence de Fibonacci , qui commence par 0
et 1
, et chaque élément est la somme des deux précédents. Voici les premiers termes (OEIS A000045 ):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584
Étant donné un entier positif , retournez le nombre le plus proche de la séquence de Fibonacci, selon ces règles:
Le nombre de Fibonacci le plus proche est défini comme le nombre de Fibonacci avec la plus petite différence absolue avec l'entier donné. Par exemple,
34
est le nombre de Fibonacci le plus proche de30
, car|34 - 30| = 4
, qui est plus petit que le deuxième plus proche21
, pour lequel|21 - 30| = 9
.Si l'entier donné appartient à la séquence de Fibonacci, le nombre de Fibonacci le plus proche est exactement lui-même. Par exemple, le nombre de Fibonacci le plus proche de
13
est exactement13
.En cas d'égalité, vous pouvez choisir de sortir l'un des numéros de Fibonacci les plus proches de l'entrée ou simplement les sortir tous les deux. Par exemple, si l'entrée est
17
, tous les éléments suivants sont valables:21
,13
ou21, 13
. Si vous les retournez tous les deux, veuillez mentionner le format.
Les échappatoires par défaut s'appliquent. Vous pouvez prendre des entrées et fournir des sorties par n'importe quelle méthode standard . Votre programme / fonction ne doit gérer que des valeurs jusqu'à 10 8 .
Cas de test
Entrée -> Sortie 1 -> 1 3 -> 3 4 -> 3 ou 5 ou 3, 5 6 -> 5 7 -> 8 11 -> 13 17 -> 13 ou 21 ou 13, 21 63 -> 55 101 -> 89 377 -> 377 467 -> 377 500 -> 610 1399 -> 1597
Notation
C'est le code-golf , donc le code le plus court en octets dans chaque langue gagne!
n
implique n ≥ 1
.