剑指 Offer 10- I. 斐波那契数列

156 阅读1分钟

剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。

质数计算器 1000000007是10位数中 最小质数

单精度 32位 Math.pow(2,11) - 1 = 2147486448 (10为数) 在其内部取出代表数字1000000007 我猜它的意思是 限制数字在单精度以内

var fib = function (n) {
    if (n <= 1) return n
    var x = 0;
    var y = 1;
    for (var i = 2; i <= n; i++) {
        y = y + x;
        x = y - x;
        y = y % 1000000007
    }
    return y
};