Thuta Learning
ရှာဖွေရန်
AdvancedProgrammingbeginner

Recursion

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

🔁 Lesson 61: Python Recursion (Functions Calling Themselves)

1. Recursion ဆိုတာဘာလဲ?

မြန်မာ → Recursion ဆိုတာ function တစ်ခုက ကိုယ်ကိုယ်တိုင်ကို ပြန်ခေါ်သုံးတဲ့နည်း ဖြစ်တယ်။

English → Recursion is when a function calls itself to solve a problem.

2. Why Use Recursion?

  • Problem ใหญ่ကို sub-problems အနည်းငယ်အဖြစ် ခွဲပြီး ဖြေရှင်းနိုင်တယ်
  • Tree structures, mathematical problems (factorial, Fibonacci) အတွက် အဆင်ပြေတယ်
  • Algorithm design (divide & conquer) မှာ အဓိကအသုံးများတယ်

3. အကျဉ်းချုပ်

✅ Recursion = function calling itself

✅ Base case + recursive case မရှိမဖြစ်လိုတယ်

✅ Example → countdown, factorial, Fibonacci

✅ Real-world → file system, algorithms, tree structures

python
# ===== 1. Basic Recursion (Countdown) =====
def countdown(n):
    if n == 0:
        print("Done!")
    else:
        print(n)
        countdown(n-1)

print("===== Countdown =====")
countdown(5)

# ===== 2. Factorial Example =====
print(f"\n===== Factorial =====")

def factorial(n):
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n-1)

print(f"5! = {factorial(5)}")  # 120

# ===== 3. Fibonacci Example =====
print(f"\n===== Fibonacci =====")

def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print(f"fibonacci(6) = {fibonacci(6)}")  # 8

# ===== 4. Key Concepts =====
print(f"\n===== Key Concepts =====")
print("Base Case → Recursion ရပ်မယ့်အချက် (e.g., if n==0)")
print("Recursive Case → Function ကို ကိုယ်တိုင်ပြန်ခေါ်တဲ့အပိုင်း")
print("Stack Overflow → Base case မရေးရင် infinite recursion")

# ===== 5. Real-World Use Cases =====
print(f"\n===== Use Cases =====")
print("✅ File system traversal")
print("✅ Tree/Graph algorithms (DFS, BFS)")
print("✅ Mathematical problems")
print("✅ Divide & Conquer algorithms")
You should see
===== Countdown ===== 5 4 3 2 1 Done! ===== Factorial ===== 5! = 120 ===== Fibonacci ===== fibonacci(6) = 8 ===== Key Concepts ===== Base Case → Recursion ရပ်မယ့်အချက် (e.g., if n==0) Recursive Case → Function ကို ကိုယ်တိုင်ပြန်ခေါ်တဲ့အပိုင်း Stack Overflow → Base case မရေးရင် infinite recursion ===== Use Cases ===== ✅ File system traversal ✅ Tree/Graph algorithms (DFS, BFS) ✅ Mathematical problems ✅ Divide & Conquer algorithms
Recursion | Thuta Learning