মডিউল ১৭-২ঃ রিকার্সন

রিকার্সন (Recursion) কি?

রিকার্সন হলো এমন একটি প্রোগ্রামিং কৌশল যেখানে একটি ফাংশন নিজেকেই কল করে। এটি সাধারণত সমস্যা সমাধানের জন্য ব্যবহৃত হয় যা সাব-প্রবলেম (sub-problem) থেকে গঠিত।

রিকার্সন কিভাবে কাজ করে:

  1. বেস কেস (Base Case): রিকার্সিভ ফাংশনে এমন একটি শর্ত থাকতে হবে যা রিকার্সন বন্ধ করে দেয়। এই শর্তকে "বেস কেস" বলা হয়।

  2. রিকার্সিভ কল (Recursive Call): রিকার্সিভ ফাংশন নিজেকেই নিজে কল করে, এবং কল করা ফাংশনটি মূল ফাংশনের সাব-প্রবলেম সমাধান করে।

  3. সমাধান একত্রিত করা (Combining Solutions): রিকার্সিভ কল থেকে ফেরত আসার পর, মূল ফাংশন সাব-প্রবলেমের সমাধানগুলো একত্রিত করে সামগ্রিক সমাধান তৈরি করে।

উদাহরণ:

#include<stdio.h>
void fun(int i,int n)
{
    if(i==n+1) return; // বেস কেস
    printf("%d\n",i);
    fun(i+1,n);  // রিকার্সিভ কল
}
int main()
{
    int n;
    scanf("%d",&n);
    fun(1,n);
    return 0;
}

Last updated