相关疑难解决方法(0)

为什么JavaScript认为354224848179262000000和354224848179261915075相等?

所以,我开始尝试使用递归函数找到第100个Fibonacci数,并使用以下代码记忆该函数.

Function.prototype.memoize = function () {
    var originalFunction = this,
        slice = Array.prototype.slice;
        cache = {};
    return function () {
        var key = slice.call(arguments);
        if (key in cache) {
            return cache[key];
        } else {
            return cache[key] = originalFunction.apply(this, key);
        }
    };
};

var fibonacci = function (n) {
    return n === 0 || n === 1 ? n : fibonacci(n - 1) + fibonacci(n - 2);
}.memoize();

console.log(fibonacci(100));
Run Code Online (Sandbox Code Playgroud)

现在,正如您在这个小提琴中看到的那样,JavaScript会记录354224848179262000000作为结果.根据WolframAlpha,第129个斐波纳契数实际上是354224848179261915075,这是正确的.

现在,我的问题是这个. …

javascript

6
推荐指数
1
解决办法
1322
查看次数

标签 统计

javascript ×1