所以,我开始尝试使用递归函数找到第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 ×1