diff --git a/README.md b/README.md index c2e235e..3e67cb6 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,13 @@ ## Definitions Define the following: -- Recursion -- Recursive Case -- Base Case -- Activation Chain/Stack -- Activation Record/Call -- Infinite Recursion/Stack Overflow/Stack too deep -- Tail Recursion +- Recursion = method that calls itself within the method; the opposite of iterative +- Recursive Case = a problem that divides the problem into a smaller problem +- Base Case = a problem that can be solved immediately, it returns a result without recursion and is used to stop it +- Activation Chain/Stack = all of the individual recursive calculations for the given value (all of the "bubbles") +- Activation Record/Call = one stack frame, which is the memory used to store local variables; single invocation of a method (each of the "bubbles") +- Infinite Recursion/Stack Overflow/Stack too deep = the recuriosn would never stop, there is no base case +- Tail Recursion = a form of recursive programming, where the recursive call is the last call in any given method ## Tracing through a recursive method @@ -24,9 +24,9 @@ def mystery1(n) end ``` -- What is mystery1(5)? -- What is mystery1(10)? -- What is mystery1(0)? +- What is mystery1(5)? 15 +- What is mystery1(10)? 55 +- What is mystery1(0)? infinite recursion ### Trace #2 ``` @@ -39,9 +39,9 @@ def mystery2(n) end ``` -- What is mystery2(123)? -- What is mystery2(9005)? -- What is mystery2(-123)? +- What is mystery2(123)? 6 +- What is mystery2(9005)? 14 +- What is mystery2(-123)? -123 - _Added Fun: How could we make `mystery2(-123)` work the way we might expect it to work instead of the way it does?_ ### Trace #3 @@ -60,9 +60,9 @@ def mystery3(n) end ``` -- What is mystery3(1)? -- What is mystery3(13)? -- What is mystery3(-6)? +- What is mystery3(1)? 100 +- What is mystery3(13)? 100 +- What is mystery3(-6)? 200 ### Trace #4 ``` @@ -75,9 +75,9 @@ def mystery4(b,e) end ``` -- What is mystery4(10,2)? -- What is mystery4(4,3)? -- What is mystery4(5,0)? +- What is mystery4(10,2)? 100 +- What is mystery4(4,3)? 64 +- What is mystery4(5,0)? 1 ### Trace #5 ``` @@ -90,9 +90,9 @@ def mystery5(s) end ``` -- What is mystery5("hi")? -- What is mystery5("")? -- What is mystery5("Hi, there!")? +- What is mystery5("hi")? "**" +- What is mystery5("")? "" +- What is mystery5("Hi, there!")? "**********" - _Added Fun: How could we make only alphabetic characters to be changed to stars?_ ### Trace #6 @@ -110,7 +110,7 @@ def mystery6(s) end ``` -- What is mystery6("goodnight moon")? -- What is mystery6("Ada Developers Academy")? -- What is mystery6("Hi, there!")? +- What is mystery6("goodnight moon")? "moon goodnight" +- What is mystery6("Ada Developers Academy")? "Developers Academy Ada" +- What is mystery6("Hi, there!")? "there! Hi," - _Added Fun: How could we make the reversal happen by letter, instead of by word (i.e. Make it so that mystery6("goodnight moon") returned "noom thgindoog")?_