Fibonacci
by secretgspot
HTML
<div id="numbers"></div>
<div id="comments"></div>
JavaScript
$(function() {
// What is the bug in the output of this program & how can it be solved?
// What three numbers are not remembered
// How many recursions, how many remembers compared to n?
var getFibonacci = function() {
var numbers = [],
recursed = 0,
remembered = 0,
fibonacci = function(numIn) {
if (arguments.length > 1) {
return $("#comments").append("<br/>" + "Recursed " + recursed +
" times.<br/>Remembered " + remembered + " times.");
}
if (typeof numbers[numIn] === 'number') {
++remembered;
$("#comments").append("Remembering " + numbers[numIn] + "<br/>");
return numbers[numIn];
}
++recursed;
numbers[numIn] = numIn < 2 ? numIn : fibonacci(numIn - 2) + fibonacci(numIn - 1);
$("#numbers").append(numbers[numIn] + " ");
return numbers[numIn];
};
return fibonacci;
},
i,
fibonacci = getFibonacci();
fibonacci(666);
fibonacci("want","count");
});