Sunday, 8 June 2025

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

 


Code Explanation:

 Importing lru_cache from functools
from functools import lru_cache
This line imports lru_cache from Python's functools module.
lru_cache is used to cache results of function calls to avoid redundant calculations.
Useful for recursive functions like Fibonacci, which this problem is similar to.

Function Definition with Memoization
@lru_cache(None)
This is a decorator that applies caching to the function.
@lru_cache(None) means there’s no limit on the number of stored results (infinite cache size).

def climb_stairs(n):
Defines a function climb_stairs that takes an integer n (number of steps).

Base Case for Recursion
    if n <= 2:
        return n
This is the base case:
If there's 1 step, there's only 1 way to climb: (1)
If there are 2 steps, there are 2 ways: (1+1) or (2)
So for n = 1 → returns 1, for n = 2 → returns 2.

Recursive Case
    return climb_stairs(n - 1) + climb_stairs(n - 2)
For n > 2, the number of ways to climb n steps is the sum of:
Ways to climb n-1 steps (then take 1 step)
Ways to climb n-2 steps (then take 2 steps)
This mirrors the Fibonacci sequence.

Calling the Function
print(climb_stairs(5))
Calls climb_stairs(5)
The function computes:
climb_stairs(5)
= climb_stairs(4) + climb_stairs(3)
= (climb_stairs(3) + climb_stairs(2)) + (climb_stairs(2) + climb_stairs(1))
...
With memoization, repeated calls like climb_stairs(2) are cached.

Final Output
The number of ways to climb 5 stairs is:
8

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)