我们都熟悉著名的Fibonacci序列,该序列以0
和开头1
,每个元素都是前两个元素的和。以下是前几个术语(OEIS A000045):
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584
给定一个正整数,在以下规则下返回斐波那契数列的最接近的数字:
所述最接近的斐波纳契数被定义为与该给定整数的最小绝对差斐波那契数。例如,
34
是最接近斐波那契数30
,因为|34 - 30| = 4
,这是比第二最接近的一个,更小21
,为此|21 - 30| = 9
。如果给定的整数属于斐波那契数列,则最接近的斐波那契数就是它本身。例如,最接近的斐波那契数
13
恰好是13
。如果是平局,您可以选择输出两个都最接近输入的斐波那契数之一,也可以仅输出两个。例如,如果输入的是
17
,以下所有的都是有效的:21
,13
或21, 13
。如果您将它们都退回,请注明格式。
默认漏洞适用。您可以通过任何标准方法获取输入并提供输出。您的程序/函数最多只能处理10 8的值。
测试用例
输入->输出 1-> 1 3-> 3 4-> 3或5或3,5 6-> 5 7-> 8 11-> 13 17-> 13或21或13,21 63-> 55 101-> 89 377-> 377 467-> 377 500-> 610 1399-> 1597
计分
这是代码高尔夫球,因此每种语言中以字节为单位的最短代码胜出!
n
表示n ≥ 1
。