Consider the following program:
Note: max(x,y) returns the maximum of x and y. The value printed by this program is
Look at the recursion stack of the given code in the below image. Assuming that the base address of array starts from 1000 and an integer takes 4 Bytes.
After the last recursive call f(1016,1) returns, in the previous call we will have return max(0,2) and then return max(2,-4) and then return max(2,3) and then finally return max(3,-2) = 3.
This solution is contributed by Pranjul Ahuja
Quiz of this Question