www.umbc.edu
CMSC201 Computer Science I for Majors
Lecture 20 – Recursion (Continued)
- Prof. Katherine Gibson
Based on slides from UPenn’s CIS 110, and from previous iterations of the course
CMSC201 Computer Science I for Majors Lecture 20 Recursion - - PowerPoint PPT Presentation
CMSC201 Computer Science I for Majors Lecture 20 Recursion (Continued) Prof. Katherine Gibson Based on slides from UPenns CIS 110, and from previous iterations of the course www.umbc.edu Last Class We Covered Stacks Recursion
www.umbc.edu
Based on slides from UPenn’s CIS 110, and from previous iterations of the course
www.umbc.edu
2
www.umbc.edu
www.umbc.edu
4
www.umbc.edu
www.umbc.edu
6
www.umbc.edu
7
www.umbc.edu
8
www.umbc.edu
www.umbc.edu
10
www.umbc.edu
11
www.umbc.edu
12
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) fact(0) fact(1) fact(2) fact(3) fact(4) main()
main() def main(): summ(4)
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num = 4 num: 4
summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4 num = 4
summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3 num = 4
summ(3) summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
summ(2) summ(3) summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num = 1 num: 1
summ(2) summ(1) summ(3) summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 1 num = 0
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 0 num = 1
summ(2) summ(1) summ(0) summ(3) summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 1 num = 0
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 0 num = 1
summ(2) summ(1) summ(0) summ(3) summ(4) main()
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 1 num = 0
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 0
return 0 num = 1
summ(2) summ(1) summ(0) summ(3) summ(4) main() POP!
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 1
return 1 num = 1
summ(2) summ(1) summ(3) summ(4) main() POP! POP!
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 2 num = 2 num = 4
return 3
summ(2) summ(3) summ(4) main() POP! POP! POP!
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: return num + summ(num-1)
num: 3 num = 3 num = 4
return 6
summ(3) summ(4) main() POP! POP! POP! POP!
www.umbc.edu
def summ(num): if num == 0: return 0 else: return num + summ(num-1) main() def main(): summ(4)
num: 4 num = 4
return 10
summ(4) main() POP! POP! POP! POP! POP!
www.umbc.edu
main() main() def main(): summ(4) POP! POP! POP!
return None
POP! POP! POP!
www.umbc.edu
POP! POP! POP!
POP! POP! POP!
www.umbc.edu
www.umbc.edu
30
www.umbc.edu
def summ(num): if num == 0: return 0 else: num + summ(num-1) main() def main(): summ(4)
num: 4
def summ(num): if num == 0: return 0 else: num + summ(num-1)
num: 3 num = 3
def summ(num): if num == 0: return 0 else: num + summ(num-1)
num: 2 num = 2 num = 4
def summ(num): if num == 0: return 0 else: num + summ(num-1)
num: 1 num = 0
def summ(num): if num == 0: return 0 else: num + summ(num-1)
num: 0 num = 1
summ(2) summ(1) summ(0) summ(3) summ(4) main()
www.umbc.edu
www.umbc.edu
33
comic courtesy of xkcd.com
www.umbc.edu
34
www.umbc.edu
35
www.umbc.edu
36
www.umbc.edu
37
www.umbc.edu
38
www.umbc.edu
www.umbc.edu
40
www.umbc.edu
41
www.umbc.edu
42
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Find "J" A B C D E F G H I J K L M N O P Q R S T U V W X
www.umbc.edu
43
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Find “V" A B C D E F G H I J K L M N O P Q R S T U V W X
www.umbc.edu
44
www.umbc.edu
www.umbc.edu
46
www.umbc.edu
47
www.umbc.edu
48
www.umbc.edu
www.umbc.edu
50
www.umbc.edu
51
www.umbc.edu
52
www.umbc.edu
www.umbc.edu
54