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

Recursion

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

Recursion ဆိုတာ function တစ်ခုက သူ့ကိုယ်သူပြန်ခေါ်တာပါ။ Problem ကို ပိုသေးတဲ့ problem အဖြစ်ခွဲပြီးဖြေရှင်းနိုင်တဲ့အခါအသုံးဝင်ပါတယ်။ Factorial, tree traversal, directory traversal စတာတွေမှာတွေ့ရပါတယ်။

c
#include <stdio.h>

int sum(int n) {
  if (n == 0) {
    return 0;
  }
  return n + sum(n - 1);
}

int main() {
  printf("%d", sum(5));
  return 0;
}

sum(5) က 5 + sum(4) ဖြစ်သွားပြီး ဆက်ခေါ်သွားပါတယ်။ n == 0 ဖြစ်တဲ့အခါ base case ရောက်ပြီး recursion ရပ်ပါတယ်။

You should see
15

Info

Recursion မှာ base case မရှိရင် function က မရပ်ဘဲဆက်ခေါ်နေပြီး stack overflow ဖြစ်နိုင်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Base case ရေးထားပေမယ့် recursive call က base case ဆီမနီးလာရင်လည်း infinite recursion ဖြစ်နိုင်ပါတယ်။ ဥပမာ sum(n) ကိုပဲပြန်ခေါ်တာမျိုး။
Recursion | Thuta Learning