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
15Info
Recursion မှာ base case မရှိရင် function က မရပ်ဘဲဆက်ခေါ်နေပြီး stack overflow ဖြစ်နိုင်ပါတယ်။