# Python Coding challenge - Day 172 | What is the output of the following Python Code?

### Code:

def fun(x, y):

if x == 0:

return y

else:

return fun(x - 1, x * y)

print(fun(3, 5))

### Solution and Explanation:

Let's break down the provided Python function fun(x, y) and an example call print(fun(3, 5)):

def fun(x, y):
if x == 0:
return y
else:
return fun(x - 1, x * y)

print(fun(3, 5))
Function Definition:

The function fun(x, y) takes two parameters, x and y.
Base Case:

The function checks if x is equal to 0. If it is, the function returns y. This serves as the base case for the recursive function.
Recursive Case:

If x is not equal to 0, the function calls itself recursively with x - 1 and x * y.
Recursion:

The function keeps calling itself with a decremented x until x becomes 0, each time multiplying y by the current value of x.
Example Call:

print(fun(3, 5)) calls the fun function with x = 3 and y = 5.
The function first checks if x is 0. Since it's not, it enters the recursive case.
It calls fun(2, 3 * 5), then fun(1, 2 * (3 * 5)), and finally fun(0, 1 * (2 * (3 * 5))).
When x becomes 0, it returns the accumulated value of y, which is 2 * (3 * 5) = 30.
So, the output of print(fun(3, 5)) will be 30.

## Categories

AI (27) Android (24) AngularJS (1) aws (17) Azure (7) BI (10) book (4) Books (118) C (77) C# (12) C++ (82) Course (62) Coursera (180) Cybersecurity (22) data management (11) Data Science (95) Django (6) Downloads (3) edx (2) Engineering (14) Excel (13) Factorial (1) Finance (6) flutter (1) FPL (17) Google (19) Hadoop (3) HTML&CSS (46) IBM (25) IoT (1) IS (25) Java (92) Leet Code (4) Machine Learning (44) Meta (18) MICHIGAN (5) microsoft (4) Pandas (3) PHP (20) Projects (29) Python (753) Questions (2) R (70) React (6) Scripting (1) security (3) Software (17) SQL (40) UX Research (1)