diff --git a/README.md b/README.md index c2e235e..4489cf2 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # Recursion Problems ## Definitions -Define the following: +Define the following: -- Recursion -- Recursive Case -- Base Case -- Activation Chain/Stack -- Activation Record/Call -- Infinite Recursion/Stack Overflow/Stack too deep -- Tail Recursion +- Recursion - **The use of a method/application inside itself** +- Recursive Case - **A problem that is divided into smaller problems** +- Base Case - **An immediately solvable problem** +- Activation Chain/Stack - **All of the iterations of the method being called within itself** +- Activation Record/Call - **A single instance/iteration point of the method being called within itself** +- Infinite Recursion/Stack Overflow/Stack too deep - **An error that occurs when the method results in an infinite loop** +- Tail Recursion - **A type of recursion where the recursive call is the very last function of the method/operation** ## 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)? **Stack level too deep error** ### 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("")? **blank** +- What is mystery5("Hi, there!")? ********** **(* 10 times)** - _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")?**Academy Developers 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")?_