Nodejs Fibonacci Sequence Get memoFib(hash=})

Here you can find the source of memoFib(hash=})

Method Source Code

/**//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;
  }
}

Related

  1. iterFib()
    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;
    
  2. naiveFib()
    Number.prototype.naiveFib = function () {
      if (Number(this) < 0)
        return -1;
      switch (Number(this)) {
        case 0:
          return 0;
        case 1:
          return 1;
        default:
    ...
    
  3. 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) {
    ...