Chapter 13 Reading Quiz
What is the output when mystery2(4) is called? a -+ --++ ---+++ ----++++ b ----++++ c ---- ++++ --- +++ -- ++ - + d ----++++ ---+++ --++ -+
-+ --++ ---+++ ----++++
How many recursive calls are made from the original call of powerOfTwo(64)(not including the original call)? Answer:
6
Consider the recursive method below. What is printed for the call myPrint(8)? Answer: public static void myPrint(int n) { if (n < 10) { System.out.print(n); } else { int m = n % 10; System.out.print(m); myPrint(n / 10); } }
8
Not counting the original call, how many recursive calls to the fib method shown below would be made from an original call to fib(4)? Answer: public static int fib(int n) { if (n <= 1) return n; else return (fib(n - 1) + fib(n - 2)); }
8
With regards to recursion, what are base cases? a A condition that causes the recursion to terminate. b A condition that does not result in a recursive method call c A condition that handles the simplest computations directly d All of these
All of these
Consider the code for the recursive method. What is returned by the call mysteryPrint(-4) ? public static int mysteryPrint(int n) { if (n == 0) return 0; else return (n + mysteryPrint(n-1)); } a 0 b -10 c -22 d Nothing - infinite recursion will occur, causing a stack overflow error
Nothing - infinite recursion will occur, causing a stack overflow error
Consider the following code snippet for calculating Fibonacci numbers recursively: public static int fib(int n) { // assumes n >= 0 if (n <= 1) { return n; } else { return (fib(n - 1) + fib(n - 2)); } } Identify the terminating condition. a fib(n - 1) + fib(n - 2) b fib(n - 1) c n <= 1 d n > 1
n <= 1
The method below returns the String text in reverse. For example reverse("Hello") returns "olleH". Which statement below represents the nonbase case? a reverse(text.substring(1,len)) + text.substring(1,1) b reverse(text.substring(1,len-1)) + text.substring(0,1) c reverse(text.substring(1,len)) + text.substring(0,1) d reverse(text(1,len)) + text(0)
reverse(text.substring(1,len)) + text.substring(0,1)
The method below returns the String text in reverse. For example reverse("Hello") returns "olleH". Which statement should represent the base case? a len b text c "text" d ""
text
What is output when mystery(4) is called? a -+ --++ ---+++ ----++++ b ----++++ ---+++ --++ -+ c ---- ++++ --- +++ -- ++ - + d ----++++
----++++ ---+++ --++ -+
How many recursive calls are made from the original call powerOfTwo(63) (not including the original call)? Answer:
0
Consider the recursive method below. What is printed for the call myPrint(821)? Answer: public static void myPrint(int n) { if (n < 10) { System.out.print(n); } else { int m = n % 10; System.out.print(m); myPrint(n / 10); } }
128
Consider the following recursive code. What value is returned from a call to mystery(3, 6)? Answer: public static int mystery(int n, int m) { if (n <= 0) return 0; if (n == 1) return m; return m + mystery(n - 1, m); }
18
Consider the following recursive code. What value is returned from a call to mystery(1,5)? Answer: public static int mystery(int n, int m) { if (n <= 0) return 0; if (n == 1) return m; return m + mystery(n - 1, m); }
5
Consider the method powerOfTwo shown below. What is the best interpretation of line #1? a Any multiple of one is a power of two b Any multiple of two is a power of two c One is odd d One is a power of 2
One is a power of 2
Even though a recursive method might run a little slower than its equivalent iterative method, the recursive solution is often easier to understand and implement. True False
True
Complete the code for the recursive method printSum shown in this code snippet, which is intended to return the sum of digits from 1 to n: public static int printSum(int n) { if (n == 0) return 0; else { ______________________________ } } a return (printSum(n - 1)); b return (n + printSum(n - 1)); c return (n + printSum(n + 1)); d return (n - printSum(n - 1));
return (n + printSum(n - 1));