剑指 Offer 10-I. 斐波那契数列 #
题目 #
-
写一个函数,输入
n
,求斐波那契(Fibonacci)数列的第n
项(即F(N)
)。斐波那契数列的定义如下:F(0) = 0, F(1) = 1
F(N) = F(N - 1) + F(N - 2)
, 其中N > 1
.- 斐波那契数列由
0
和1
开始,之后的斐波那契数就是由之前的两数相加而得出。
-
答案需要取模
1e9+7(1000000007)
,如计算初始结果为:1000000008
,请返回1
。
思路 #
迭代 #
代码 #
迭代 #
class Solution {
public int fib(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
int one = 0, two = 1;
for (int i = 2; i <= n; i++) {
int temp = one % 1000000007 + two % 1000000007;
one = two;
two = temp;
}
return two % 1000000007;
}
}