All mock tests are FREE till 31 December — register to save your progress

Consider the following recursive Java function f that takes two long arguments and returns a

float value :
public static float f(long m, long n)
{
float result =(float )m/(float )n;
if (m<0||n<0)
return 0.0f ;
else
result +=f(m∗2,n∗3);
return result;
}

Which of the following integers best approximates the value of f(2,3)?

Pick an option to check yourself, or open the answer below.

Show answer & explanation

Correct answer: C. 2

Explanation

f(2, 3) = 2/3 + 4/9 + 8/27 + … = (2/3)/(1 − 2/3) = 2. Recursion stops when m or n overflows to a negative value, by which point the remaining terms are negligible.

More Programming Languages and Computer Graphics questions