Can someone dry run and explain me this code? having problem to understand recursion program.

``````public class Multiplication {

public static void main(String[] args)
{
}

public static int Mult(int x,int y)
{

if (y==1)
return x;
else
return x + Mult(x,y-1);
}
}``````

You will have to learn the concept of a stack first.
It will be a little difficult to explain a concept of a stack, as it is best understood with pictures and graphics !!

Each function call is assigned a new stack frame with memory for its local variables.

Did you actually go through stacks ? If so, there is nothing in there for me to point out because it is a very simple mistake. I could point out the mistake to you, you can correct it out and get your program running next minute. But i don't see …

## All 8 Replies

You will have to learn the concept of a stack first.
It will be a little difficult to explain a concept of a stack, as it is best understood with pictures and graphics !!

Each function call is assigned a new stack frame with memory for its local variables.

Try tracing out the program step by step once you learn the above concept.

I don't think there should be a prob in analyzing the above program(which is wrong though) if you know stack mechanism.

whats wrong in the program?

Did you actually go through stacks ? If so, there is nothing in there for me to point out because it is a very simple mistake. I could point out the mistake to you, you can correct it out and get your program running next minute. But i don't see any purpose learning like that. Learn the concept once, it'll do you a world of good. They are one of the most important concepts.

whats wrong in the program?

Your recursive method works for me (assuming y>=1).

can you explain me this line of code

``return x + Mult(x,y-1);``

how it works?? how can it add x to the function name Mult(x,y-1)

It calls Mult, passing the values of x and y-1 as parameters. Whatever result is returned from that call is then added to x.

You are not adding x to Mult.
You are adding x to the RESULT of what is RETURNED by Mult.

ok thanks

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.