52 is answer if termination condition is n<=0

3 votes

Consider the following function:

void madeeasy (int n)

{

if (n < 0) return;

else

{

printf(n);

madeeasy (- -n);

madeeasy (n - -);

printf(n);

}

}

The sum of all values printed by madeeasy (5)_______

(I am getting -12 but given answer is 52)

void madeeasy (int n)

{

if (n < 0) return;

else

{

printf(n);

madeeasy (- -n);

madeeasy (n - -);

printf(n);

}

}

The sum of all values printed by madeeasy (5)_______

(I am getting -12 but given answer is 52)

0

Consider the following code:

int P = 0;

for (i = 1; i < 2n; i++)

{

for (j = 1, j<=n; j++)

{

if(j<i) P=P+1;

}

}

printf(“%d”, P);

What is the output printed by the above code in terms of n?

what about this i calculated ans as (3*$n^{2}$-3*n)/2 but in answer they have given (3*$n^{2}$-n)/2

0

@newdreamz a1-z0 one question, what do you feel is the answer for this https://gateoverflow.in/301271/me-mock-4,?

1 vote

**Case 1 : **If termination condition is on** n<0 ;**

**if (n < 0)**

**then answer will be -12**

** **

**Case 2 : **if termination condition is **n<=0**

**if (n <= 0)**

**then **answer **will be 52**

0 votes

Whenever the function decreases the recursive call value, it's better do follow a bottom up approach.

I'll rename madeeasy() to m() for simplicity.

m(0) runs like this:

print 0 m(-1); starting m(-1) is pointless, as it just makes us return. m(-1) print -2 Hence, Sum = -2

m(1) runs like this:

print 1 m(0); We know m(0) gives us sum -2. m(0); We know m(0) gives us sum -2. print -1 Hence, Sum = -4

Similarly, m(2) gives us sum: -6

m(3) gives us sum: -8

m(4) gives us sum: -10

m(5) will give us **-12**.