Recursion

AP Computer Science A· difficulty 3/5

public static int recur(int n) {
    if (n == 0) return 0;
    return n + recur(n / 2);
}
// Call: System.out.println(recur(10));

What is printed?

  • A

    18

    check_circle
  • B

    20

  • C

    17

  • D

    16

Explanation

recur(10) = 10 + recur(5). recur(5) = 5 + recur(2). recur(2) = 2 + recur(1). recur(1) = 1 + recur(0) = 1. So 10+5+2+1 = 18.

Want 10 more like this — adaptive to your weak spots?

Related questions