Recursion: Thinking About It
7 January 2019 OSU CSE 1
Recursion: Thinking About It 7 January 2019 OSU CSE 1 Recursion - - PowerPoint PPT Presentation
Recursion: Thinking About It 7 January 2019 OSU CSE 1 Recursion A remarkably important concept and programming technique in computer science is recursion A recursive method is simply one that calls itself There are two quite
7 January 2019 OSU CSE 1
7 January 2019 OSU CSE 2
7 January 2019 OSU CSE 3
7 January 2019 OSU CSE 4
7 January 2019 OSU CSE 5
/** * Reverses a String. * ... * @ensures * reversedString = rev(s) */ private static String reversedString(String s) {...}
7 January 2019 OSU CSE 6
/** * Reverses a String. * ... * @ensures * reversedString = rev(s) */ private static String reversedString(String s) {...}
7 January 2019 OSU CSE 7
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 8
7 January 2019 OSU CSE 9
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { rs = s.charAt(i) + rs; }
7 January 2019 OSU CSE 10
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "" i = 0 rs = s.charAt(i) + rs; }
7 January 2019 OSU CSE 11
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "" i = 0 rs = s.charAt(i) + rs; s = "abc" rs = "a" i = 0 }
7 January 2019 OSU CSE 12
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "a" i = 1 rs = s.charAt(i) + rs; s = "abc" rs = "a" i = 0 }
7 January 2019 OSU CSE 13
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "a" i = 1 rs = s.charAt(i) + rs; s = "abc" rs = "ba" i = 1 }
7 January 2019 OSU CSE 14
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "ba" i = 2 rs = s.charAt(i) + rs; s = "abc" rs = "ba" i = 1 }
7 January 2019 OSU CSE 15
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "ba" i = 2 rs = s.charAt(i) + rs; s = "abc" rs = "cba" i = 2 }
7 January 2019 OSU CSE 16
s = "abc" rs = "" for (int i = 0; i < s.length(); i++) { s = "abc" rs = "ba" i = 2 rs = s.charAt(i) + rs; s = "abc" rs = "cba" i = 2 } s = "abc" rs = "cba"
/** * Reverses a String. * ... * @ensures * reversedString = rev(s) */ private static String reversedString(String s) {...}
7 January 2019 OSU CSE 17
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 18
7 January 2019 OSU CSE 19
7 January 2019 OSU CSE 20
7 January 2019 OSU CSE 21
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 22
7 January 2019 OSU CSE 23
s = "abc" String sub = s.substring(1); s = "abc" sub = "bc" String revSub = FreeLunch.reversedString(sub); s = "abc" sub = "bc" revSub = "cb" String result = revSub + s.charAt(0); s = "abc" sub = "bc" revSub = "cb" result = "cba"
7 January 2019 OSU CSE 24
s = "abc" String sub = s.substring(1); s = "abc" sub = "bc" String revSub = FreeLunch.reversedString(sub); s = "abc" sub = "bc" revSub = "cb" String result = revSub + s.charAt(0); s = "abc" sub = "bc" revSub = "cb" result = "cba"
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 25
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 26
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 27
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 28
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 29
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 30
7 January 2019 OSU CSE 31
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 32
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 33
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 34
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 35
7 January 2019 OSU CSE 36
7 January 2019 OSU CSE 37
private static String reversedString(String s) {
}
7 January 2019 OSU CSE 38
/** * Increments a NaturalNumber. * ... * @updates n * @ensures * n = #n + 1 */ private static void increment (NaturalNumber n) {...}
7 January 2019 OSU CSE 39
/** * Increments a NaturalNumber. * ... * @updates n * @ensures * n = #n + 1 */ private static void increment (NaturalNumber n) {...}
7 January 2019 OSU CSE 40
7 January 2019 OSU CSE 41
7 January 2019 OSU CSE 42
7 January 2019 OSU CSE 43
7 January 2019 OSU CSE 44
7 January 2019 OSU CSE 45
private static void increment (NaturalNumber n) {
}
7 January 2019 OSU CSE 46
private static void increment (NaturalNumber n) {
}
7 January 2019 OSU CSE 47
private static void increment (NaturalNumber n) {
}
7 January 2019 OSU CSE 48
7 January 2019 OSU CSE 49
/** * Raises an int to a power. * ... * @requires * p >= 0 and [n ^ (p) is within int range] * @ensures * power = n ^ (p) */ private static int power(int n, int p) {...}
7 January 2019 OSU CSE 50
7 January 2019 OSU CSE 51
7 January 2019 OSU CSE 52
7 January 2019 OSU CSE 53
7 January 2019 OSU CSE 54
7 January 2019 OSU CSE 55
7 January 2019 OSU CSE 56
7 January 2019 OSU CSE 57
7 January 2019 OSU CSE 58