Hello all,

My objective is simple. I have to take in 2 positive integers and multiply them by using addition. This is a recursive problem.

Example of Output:

Please enter 2 positive integers to multiply:

4 2

4 * 2 = 8

The problem is whenever the user types in both numbers, the program window just disappears.

To receive my result, I am suppose to use something like:

x + multiply(x,--y);

``````#include <iostream>

using namespace std;

int multiply(int x, int y);

int main()
{

int x;
int y;

cout<<"Please enter 2 positive integers to multiply"<<endl;
cin>>x;
cin>>y;

cout<<x<<" * "<<y<<" = "<<multiply(x,--y)<<endl;

system ("PAUSE");
return 0;
}

int multiply(int x, int y)
{

if (x == 0)
{
return 0;
}

if (x == 1)
{
return x;
}

if (x > 1)

{
return (x + multiply(x,--y));
}

}``````

You test x, and only change y

## All 2 Replies

You test x, and only change y

As long as you are decrementing y you should put y in your base cases checks, otherwise `multiply(2, wathever);` would result in *endless* recursion.

EDIT: Sorry, Salem beated me in speed.

Be a part of the DaniWeb community

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