 GeeksforGeeks App
Open App Browser
Continue

# C# Program to Find Product of 2 Numbers Using Recursion

Given two numbers x and y find the product using recursion. Recursion is a process in which a function calls itself directly or indirectly and the corresponding function is known as a recursive function. It is used to solve problems easily like in this article using recursion we will find the product of two numbers.

Examples:

```Input  : x = 10, y = 3
Output : 30

Input  : x = 70, y = 4
Output : 280```

Approach:

To print the product of two number using recursion follow the following steps:

• For our task we have two numbers, i.e., x, y.
• Initialize a variable result with value zero.
• Recursively add the x to result for y times.
• Take the base condition as y == 0. When y is equal to 0 then return from function.
• At The end of iteration the result variable will contain the product of x, y.

Example:

## C#

 `// C# program to display the product of ``// two numbers using Recursion ``using` `System;`` ` `class` `GFG{``     ` `// Recursive function for calculating``// product of two numbers.``static` `int` `product(``int` `x, ``int` `y)``{``     ` `    ``// If y is equal to zero then return 0``    ``if` `(y == 0)``        ``return` `0;`` ` `    ``// Recursively calculate``    ``// y times sum of x``    ``else``        ``return` `(x + product(x, y - 1));``}`` ` `// Driver code``public` `static` `void` `Main ()``{``    ``int` `x = 10, y = 3;``     ` `    ``Console.Write(product(x, y));``}``}`

Output

`30`

We can optimize this code by swapping the x and y if y is greater than x. Lets us assume that x = 3 and y = 150 if we follow the above program then the x is added recursively 150 times, but by swapping x,y (i.e. x = 150, y = 3) we only need to add x recursively 3 times.

## C#

 `// C# program to display the product of ``// two numbers using Recursion ``using` `System;`` ` `class` `GFG{``     ` `// Recursive function for calculating``// product of two numbers.``static` `int` `product(``int` `x, ``int` `y)``{``     ` `    ``// If y is equal to zero then return 0``    ``if` `(y == 0)``        ``return` `0;``         ` `    ``// Recursively calculate``    ``// y times sum of x``    ``else``        ``return``(x + product(x, y - 1));``}`` ` `// Driver code``public` `static` `void` `Main()``{``    ``int` `x = 3, y = 150;``     ` `    ``// Swapping the x and y if the y > x.``    ``if` `(x < y)``        ``Console.Write(product(y, x));``    ``else``        ``Console.Write(product(x, y));``}``}`

Output

`450`

My Personal Notes arrow_drop_up