Monday, 30 June 2025

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

 


Code Explanation:

1. Function Definition with Memoization
def foo(n, cache={0: 1}):
Defines a function foo that calculates factorial of a number n.
cache is a default dictionary used to store already computed values (memoization).
Initially, it contains {0: 1} because 0! = 1.

2. Check if Result Already Cached
    if n not in cache:
Checks if n's factorial is already computed and saved in the cache.
If not, we need to compute it.

3. Recursive Calculation and Caching
        cache[n] = n * foo(n - 1)
If n is not in the cache:
Recursively call foo(n - 1) to get (n - 1)!
Multiply it by n to compute n!
Save it to cache[n] so it's not recomputed in the future.

4. Return Cached Result
    return cache[n]
Whether it was just computed or already existed, return cache[n].

5. Call and Print: foo(3)
print(foo(3))
What Happens:
3 not in cache
→ compute 3 * foo(2)
2 not in cache
→ compute 2 * foo(1)
1 not in cache
→ compute 1 * foo(0)
0 is in cache → 1
foo(1) = 1 * 1 = 1 → store in cache
foo(2) = 2 * 1 = 2 → store in cache
foo(3) = 3 * 2 = 6 → store in cache

Printed Output:
6

6. Call and Print: foo(2)
print(foo(2))
What Happens:
2 is already in cache from previous call.
Just return cache[2] = 2.

Printed Output:
2

Final Output
6
2

0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (152) Android (25) AngularJS (1) Api (6) Assembly Language (2) aws (27) Azure (8) BI (10) Books (251) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (298) Cybersecurity (28) Data Analysis (24) Data Analytics (16) data management (15) Data Science (217) Data Strucures (13) Deep Learning (68) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (17) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (47) Git (6) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (186) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (11) PHP (20) Projects (32) Python (1218) Python Coding Challenge (884) Python Quiz (342) Python Tips (5) Questions (2) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (45) Udemy (17) UX Research (1) web application (11) Web development (7) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)