Here you can find the source of sumFibs(num)
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) { sequence.push(sequence.secondToLast() + sequence.last()); }/*from www.j a v a2 s .c o m*/ return sequence.filter(function(num) { return num % 2 !== 0; }).reduce(function(a, b) { return a + b; }); } console.log(sumFibs(4));
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.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.naiveFib = function () { if (Number(this) < 0) return -1; switch (Number(this)) { case 0: return 0; case 1: return 1; default: ...