Fibonacci

by secretgspot

JavaScript

(function() {
// Returns the Fibonacci number at index numIn
var Fibonacci = (function() {
        // numbers is the cache
    var numbers = [0, 1],
        fibonacci = function(numIn) {      
            // Error check input
            if (numIn < 0) {
                return;
            }                    
            
            // First check in cache
            if (typeof numbers[numIn] === 'number') {               
                return numbers[numIn];              
            }
           
            numbers[numIn] = fibonacci(numIn - 2) + fibonacci(numIn - 1);
            return numbers[numIn];
        };
    return fibonacci;
}());
   
    console.log(Fibonacci(5000));   
}());