DSA 20: Recursion [Part 1]

Comparing a simple while-loop versus a recursive function
data structures
algorithms
Author

Tony Phung

Published

February 1, 2025

1. Use while-loop: to Count-Down

def count_down_while(value):
    if value<0:
        raise ValueError(f"Value must be positive: {value}")
    while value > 0:
        print(f"{value}...")
        value-=1
    print(f"{value}...Launch whilely 🚀")

1.1 Test-1: 5

count_down_while(5)
5...
4...
3...
2...
1...
0...Launch whilely 🚀

1.2 Test-2: -5

count_down_while(-5)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[20], line 1
----> 1 count_down_while(-5)

Cell In[18], line 3, in count_down_while(value)
      1 def count_down_while(value):
      2     if value<0:
----> 3         raise ValueError(f"Value must be positive: {value}")
      4     while value > 0:
      5         print(f"{value}...")

ValueError: Value must be positive: -5

2. Use recursion: to Count-Down

def count_down_recursion(value):
        if value<0:
            raise ValueError(f"Value must be positive: {value}")
        elif value>0: #5
            print(f"{value}...")
            count_down_recursion(value-1) #5-1
        else:
            print(f"{value}...Launch recursively 🛰️!!!")

2.1 Test-1: 5

count_down_recursion(5)
5...
4...
3...
2...
1...
0...Launch recursively 🛰️!!!

2.2 Test-2: -5

count_down_recursion(-5)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[23], line 1
----> 1 count_down_recursion(-5)

Cell In[21], line 3, in count_down_recursion(value)
      1 def count_down_recursion(value):
      2         if value<0:
----> 3             raise ValueError(f"Value must be positive: {value}")
      4         elif value>0: #5
      5             print(f"{value}...")

ValueError: Value must be positive: -5