মডিউল ১৭-৩ঃ Print From 1 to n Using Recursion

Code:

#include<stdio.h>
void fun(int i,int n)
{
    if(i==n+1) return; // Base case
    printf("%d\n",i);
    fun(i+1,n);
}
int main()
{
    int n;
    scanf("%d",&n);
    fun(1,n);
    return 0;
}

যদি n=3 হয়, তাহলে প্রোগ্রাম যেভাবে কাজ করবে তা নিচে দেখানো হলো:

  1. scanf("%d",&n); দ্বারা প্রোগ্রাম n এর মান প্রাপ্ত করে। এখানে n=3 হলে, এটি একেবারে নিচের মতো হবে:

    n = 3
  2. fun(1,n); কল হবে এবং সাথে দুটি আর্গুমেন্ট পাঠানো হবে i=1 এবং n=3।

  3. fun() ফাংশনের মধ্যে, i=1 এবং n=3 হিসেবে প্যারামিটার পাস হয়েছে।

  4. শুরুতে ফাংশনের ভেতরে যাওয়া হবে, if(i==n+1) return; শর্ত চেক করে, যে যদি i এর মান n+1 এর সমান হয়, তাহলে ফাংশন থেকে বের হয়ে যাওয়া হবে। এখানে i=1 এবং n=3, সুতরাং এই শর্ত পূরণ হবে না।

  5. পরবর্তী লাইনে, printf("%d\n",i); দ্বারা i এর মান 1 প্রিন্ট করা হবে এবং নতুন লাইনে চলে আসবে। এই সময় আউটপুট হবে:

    1
  6. পরবর্তী লাইনে, fun(i+1,n); দ্বারা ফাংশনকে নিজেকে নিজের মধ্যে কল করা হবে প্যারামিটার i এর মান এক বাড়িয়ে এবং এই সময় i=2 হবে।

  7. আবার ফাংশনে প্রবেশ হবে, এবং এইবার প্রথম লাইনের শর্ত চেক হবে। যে প্রথম আগের প্রোগ্রামে এই শর্ত পূরণ হবে না।

  8. এখন printf("%d\n",i); লাইনে i এর মান 2 প্রিন্ট হবে এবং নতুন লাইনে চলে আসবে। আউটপুট হবে:

    1
    2
  9. আবার ফাংশনকে কল করে i এর মান 3 প্রিন্ট হবে এবং ফাংশন থেকে বের হয়ে আসা হবে কারণ i এর মান এখন n+1 এর সমান হয়েছে। আউটপুট হবে:

    1
    2
    3
  10. সবশেষে, মেইন ফাংশনে রিটার্ন ০ করে প্রোগ্রাম শেষ হবে।

Last updated