zuai-logo
zuai-logo
  1. AP Computer Science A
FlashcardFlashcard
Study GuideStudy GuideQuestion BankQuestion BankGlossaryGlossary

What does the following code output?

java
public static int multiply(int a, int b) {
  if (b == 0) {
    return 0;
  } else {
    return multiply(a, b - 1) + a;
  }
}

System.out.println(multiply(5, 3));

15

Flip to see [answer/question]
Flip to see [answer/question]
Revise later
SpaceTo flip
If confident

All Flashcards

What does the following code output?

java
public static int multiply(int a, int b) {
  if (b == 0) {
    return 0;
  } else {
    return multiply(a, b - 1) + a;
  }
}

System.out.println(multiply(5, 3));

15

Identify the error in the following code:

java
public static void recursiveMethod() {
  do something
  recursiveMethod(); // recursive call
}

Missing base case, which will cause infinite recursion and a stack overflow error.

What does the following code output?

java
public static void traverseArray(ArrayList<Integer> array, int startIndex) {
  if (startIndex == array.size() - 1) { // base case
    System.out.println(array.get(startIndex));
  } else { // recursive case
    System.out.println(array.subList(startIndex, array.size()).get(0));
    traverseArray(array, startIndex + 1);
  }
}

ArrayList<Integer> arr = new ArrayList<>(Arrays.asList(1, 2, 3));
traverseArray(arr, 0);

1 2 3

What is the definition of Recursion?

A way to simplify problems by having a subproblem that calls itself repeatedly.

What is the definition of a Recursive Method?

A method that has two parts: a base case and the recursive call.

What is the definition of a Base Case?

The last recursive call. When the base case is reached, the recursion is stopped and a value is returned.

What is the definition of Recursive Call?

A call to the recursive method itself, telling it to start over, either with the same or different parameters.

What is the definition of a Call Stack?

A stack that keeps track of all the times that the recursive function is called, as well as their individual parameters.

What are the differences between recursion and iteration?

Recursion: Solves problems by calling itself | Iteration: Solves problems by repeating a block of code. Recursion: Typically more concise code | Iteration: Can be more efficient in terms of memory and speed. Recursion: Uses the call stack | Iteration: Does not use the call stack.