【发布时间】:2016-04-13 15:04:19
【问题描述】:
面试题:有多少斐波那契数小于给定数k?你能找到一个关于 k 的函数,得到小于 k 的斐波那契数吗?
示例:n = 6
答案:6 为 (0, 1, 1, 2, 3, 5)
很简单,编写一个循环或使用斐波那契的递归定义。但是,这听起来太容易了……有没有办法使用封闭式定义来做到这一点? (https://en.wikipedia.org/wiki/Fibonacci_number#Closed-form_expression)
【问题讨论】:
-
为什么有人需要知道这个?这只是一个难题,还是家庭作业? “sub O(n)”是否意味着您正在寻找 O(log(n)) 或 O(1) 或不在乎?
-
你会接受答案的上限还是下限,因为这可能很容易......
-
这是一道面试题。让我将其添加为编辑。这就是为什么我认为它太容易做到 O(n)
-
我认为封闭形式的逆(如果存在逆)将允许在 O(1) 中计算。它允许将 Fib 视为离散值的图。