Here you can find the source of memoFib(hash=})
/**//from w w w .j a v a 2s .c om * Returns the Nth fibonacci number. * @extends Number * @function memoFib * @return {number} * * Examples: * Number(20).memoFib(); * => 6765 */ Number.prototype.memoFib = function (hash={}) { if (Number(this) < 0) return -1; else if (Number(this) === 0) return 0; else if (Number(this) === 1) return 1; else { prevFib = hash[this-1] || (hash[this-1] = (this-1).memoFib(hash)); prevPrevFib = hash[this-2] || (hash[this-2] = (this-2).memoFib(hash)); return prevFib + prevPrevFib; } }
Number.prototype.iterFib = function () { var v1 = 0, v2 = 1, temp = 0; (new Array()).rangeArray(0, this-1).forEach(function(index) { temp = v2; v2 = v2 + v1; v1 = temp; }); return v2;
Number.prototype.naiveFib = function () { if (Number(this) < 0) return -1; switch (Number(this)) { case 0: return 0; case 1: return 1; default: ...
Array.prototype.last = function() { return this[this.length-1]; }; Array.prototype.secondToLast = function() { return this[this.length-2]; }; function sumFibs(num) { var sequence = [1,1]; while (sequence.secondToLast() + sequence.last() <= num) { ...