মডিউল ১৭-৪ঃ Print From 5 to 1 using Recursion

কোডঃ

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

এই প্রোগ্রামটি একটি সিম্পল রিকার্সিভ ফাংশন ব্যবহার করে একটি নির্দিষ্ট সংখ্যার পর্যন্ত পূর্ণসংখ্যাগুলি প্রিন্ট করে। এটির প্রোগ্রামের কাজ নিম্নলিখিত:

  1. fun() ফাংশনটি নেওয়া হলো একটি পূর্ণসংখ্যা i এর মান নিয়ে।

  2. যদি i এর মান 0 হয়, অর্থাৎ যদি i এর মান নিকটতম বেস কেস হয়, তবে ফাংশন থেকে বাহির হতে হবে। এই ধরণের কেস হলো বেস কেস বা মৌলিক কেস।

  3. যদি i এর মান 0 না হয়, তবে একটি লাইন প্রিন্ট করা হবে printf("%d\n",i); এবং একটি রিকার্সিভ কল করা হবে fun(i-1); যেখানে i-1 হচ্ছে এই ফাংশনের আর্গুমেন্ট এবং এই রিকার্সিভ কল মাধ্যমে আমরা সংখ্যাগুলি ক্রমিকভাবে কমাতে থাকব।

  4. প্রথমে ফাংশন কল হওয়ার সময়, সংখ্যা 5 প্রিন্ট করা হবে, এবং তারপরে সিস্টেম একটি রিকার্সিভ কল করে i-1=4 এর সাথে ফাংশনটি কল করবে।

  5. পরের ধাপে, ফাংশন আবার কল হবে এবং সংখ্যা 4 প্রিন্ট করা হবে, এবং পরের সংখ্যা 3 এর জন্য আবার একটি রিকার্সিভ কল করা হবে।

  6. এই পদক্ষেপ প্রক্রিয়া চলবে যতক্ষণ না i এর মান 0 হয়ে যায়। এই রিকার্সিভ কলের প্রতিটি সময় i এর মান 0 না হয়ে গেলে, তার আগের সংখ্যা প্রিন্ট হবে এবং সে সংখ্যার জন্য আবার একটি রিকার্সিভ কল করা হবে যার মান এক কম।

  7. সবশেষে, যখন i এর মান 0 হয়ে যাবে, ফাংশন থেকে বের হতে হবে এবং মেইন ফাংশনে রিটার্ন ০ করে প্রোগ্রাম শেষ হবে।

এই রিকার্সিভ ফাংশনটি ব্যবহার করে আমরা একে একে সংখ্যাগুলি প্রিন্ট করে একে একে কমিয়ে যাচ্ছি। তার ফলে আমরা প্রথমে 5 থেকে শুরু করে 1 পর্যন্ত সংখ্যা প্রিন্ট করতে পারব।

Last updated