190 likes | 362 Views
COP3502: Introduction to CIS I. Lecture 12. r ecursion “defining a program in terms of itself”. “find your way home”. f ind your way home: if (you are at home) { stop moving } else { take one step towards home “find your way home” } . “find your way home”.
E N D
COP3502: Introduction to CIS I Lecture 12
recursion “defining a program in terms of itself”
“find your way home” find your way home: if (you are at home) { stop moving } else { take one step towards home “find your way home” }
“find your way home” find your way home (stepsAway) : if (stepsAway == 0) { stop moving } else { take one step towards home “find your way home”(stepsAway – 1) }
recursion requirements base case – recursion ends recursive call – function call on smaller problem EVERY RECURSIVE CALL SHOULD BRING YOU CLOSER TO THE BASE CASE!
factorial n! = n x (n-1) x (n-2) …. x 2 x 1 Ex. 5! = 5 x 4 x 3 x 2 x 1 = 120
factorial n! = n x (n-1)! 5! = 5 x 4! = 5 x (4 x 3!) = 5 x (4 x (3 x 2!)) = 5 x (4 x (3 x (2 x 1!)))
FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)
FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3) FACTORIAL(3) = 3 * FACTIORIAL(2)
FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3) FACTORIAL(3) = 3 * FACTIORIAL(2) FACTORIAL(2) = 2 * FACTIORIAL(1)
FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3) FACTORIAL(3) = 3 * FACTIORIAL(2) FACTORIAL(2) = 2 * FACTIORIAL(1) FACTORIAL(1) = 1 * FACTIORIAL(0)
FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3) FACTORIAL(3) = 3 * FACTIORIAL(2) FACTORIAL(2) = 2 * FACTIORIAL(1) FACTORIAL(1) = 1 * FACTIORIAL(0) FACTORIAL(0) = 1 BASE CASE!
Fibonacci Fib(0) = 0 Fib(1) = 1 Fib(2) = 1 Fib(3) = 2 … Fib(n) = Fib(n-1) + Fib(n-2)