Top Banner
Lecture 12 COP3502: Introduction to CIS I
19

FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

Dec 31, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

Lecture 12COP3502: Introduction to CIS I

Page 2: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

recursion

“defining a program in terms of itself”

Page 3: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

“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”

}

Page 4: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

“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)

}

Page 5: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

recursion requirements

base case – recursion ends

recursive call – function call on smaller problem

EVERY RECURSIVE CALL SHOULD BRING YOU CLOSER TO THE BASE CASE!

Page 6: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

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

Page 7: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

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!)))

Page 8: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

FACTORIAL(5) = 5 * FACTIORIAL(4)

Page 9: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

FACTORIAL(5) = 5 * FACTIORIAL(4)

FACTORIAL(4) = 4 * FACTIORIAL(3)

Page 10: 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)

Page 11: 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(2) = 2 * FACTIORIAL(1)

Page 12: 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(2) = 2 * FACTIORIAL(1)

FACTORIAL(1) = 1 * FACTIORIAL(0)

Page 13: 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(2) = 2 * FACTIORIAL(1)

FACTORIAL(1) = 1 * FACTIORIAL(0)

FACTORIAL(0) = 1

BASE CASE!

Page 14: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)

Fibonacci

Fib(0) = 0Fib(1) = 1Fib(2) = 1Fib(3) = 2

…Fib(n) = Fib(n-1) + Fib(n-2)

Page 15: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)
Page 16: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)
Page 17: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)
Page 18: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)
Page 19: FACTORIAL(5) = 5 * FACTIORIAL(4) FACTORIAL(4) = 4 * FACTIORIAL(3)