【发布时间】:2015-07-25 14:42:11
【问题描述】:
如何在 o(logn) 中找到第 n 个非斐波那契数
非斐波那契数是:4,6,7,9,10....
下面的函数给出给定 n 值的非斐波那契数
static int nonFibonacci(int n){
int a=1,b=2,c=3;
while(n>0){
a=b;
b=c;
c=a+b;
n-=(a-1);
}
n+=(a-1);
return (n+b);
}
它给出了正确的答案,但我想优化它,使用矩阵乘法可以在 o(logn) 中找到斐波那契数,如何应用该属性来找到第 n 个非斐波那契数。
【问题讨论】:
-
由于斐波那契数列的指数分布,我相信这是 O(log n)。
标签: java fibonacci number-theory