83.7k views
1 vote
Refer to the method f:

Public int f( int k, int n )
{
if( n == k )
return k;
else
if( n > k )
return f( k, n - k );
else
return f( k - n, n );
}

What value is returned by the call f( 6, 8 )?

1 Answer

3 votes

This function will land up in infinite function call

Step-by-step explanation:

first time when the function gets invoked,

f(6,8), so k=6 & n=8, inside the function it checks k==n, ie. 6==8, returns false, then one more if is available, so 6>8 is check for , once again it is false and else loop is executed, the function is called recursively using f(k-n,n), that is f(6-8,8), it means f(-2,8) is passed.

Second time,

if(-2==8) is false, so if(-2>8) is again false and function f(-10, 8) is called

if(-10==8) is false, so if(-10>8) is again false and function f(-18,8) is called

if(-18==8) is false, so if(-18>8) is again false and function f(-26,8) is called

So this goes recursively and ends in an infinite function call.

User Min Min
by
5.3k points