     ]
    },
    {
     "cell_type": "code",
     "execution_count": null,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
 
</s> remove    "execution_count": null,
 </s> add    "execution_count": 3, </s> remove    "execution_count": null,
 </s> add    "execution_count": 2, </s> remove     "## Code"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "num_items = 10"
 </s> add     "## Code: Recursive" </s> remove     "    return cache[n]\n",
    "\n",
    "for i in xrange(num_items):\n",
    "    print(fib_dynamic(i))"
 </s> add     "    return cache[n]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Code: Iterative" </s> remove     "        return fib_recursive(n-1) + fib_recursive(n-2)\n",
    "\n",
    "for i in xrange(num_items):\n",
    "    print(fib_recursive(i))"
 </s> add     "        return fib_recursive(n-1) + fib_recursive(n-2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Code: Dynamic"
   "execution_count": 1,
     ]
    },
    {
     "cell_type": "code",
   "execution_count": 1,
     "metadata": {
      "collapsed": false
     },
     "outputs": [],
     "source": [
keep keep keep keep replace keep keep keep keep keep
 Reworked notebook: Added more detail to constraints and test cases.  Reworked code and unit test. 
recursion-dynamic/fibonacci.ipynb