剑指 Offer 10-I. 斐波那契数列 #
题目 #
-
写一个函数,输入
n,求斐波那契(Fibonacci)数列的第n项(即F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(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;
}
}