Consider:
<code class="language-java">public static int h(int a, int b) { if (a <= 0) return b; if (b <= 0) return a; return h(a - b, b + 1); } </code></pre> What does <code>h(5, 2)</code> return (use the trace shown)?
- A
0
- Bcheck_circle
4
- C
3
- D
5
Explanation
Trace: <code>h(5,2)</code> → <code>h(5-2, 2+1)</code> = <code>h(3,3)</code> → <code>h(3-3, 3+1)</code> = <code>h(0,4)</code>. At <code>h(0,4)</code>, <code>a <= 0</code> is true, so the function returns <code>b = 4</code>.