লুপ থেকে রিকার্শন

রিকার্শন নিয়ে এর আগে একটি লেখা লিখেছি। যেখানে রিকার্শন সম্পর্কে বিস্তারিত জানা যাবেঃ রিকার্শন/ Recursion , রিকার্সিভ অ্যালগরিদম, রিকার্সিভ ফাংশন ও সি প্রোগ্রামিং এ প্রয়োগ

 

যা কিছু লুপ দিয়ে করা যায়, তার সব কিছুই রিকার্শন দিয়ে করা যায়। যেমন আমরা একটা লুপ লিখি এভাবেঃ

 for(int i = 0; i < 10; i++) {

        printf("%d \n", i);

    }

এটিকে সহজেই রিকার্শনে পরিবর্তন করে আমরা লিখতে পারি এভাবেঃ

void recursiveFor(int i, int n) {
    if(i==n) return; // Terminates if we reach goal
    printf("%d \n", i);
    recursiveFor(i+1, n); // Go to next step, recursion
}

সম্পূর্ণ প্রোগ্রামঃ

#include<stdio.h>

void recursiveFor(int i, int n) {
    if(i==n) return; // Terminates if we reach goal
    printf("%d \n", i);
    recursiveFor(i+1, n); // Go to next step, recursion
}

int main()
{

    recursiveFor(0, 10); // 0 to 10

    return 0;

}

উল্টো ভাবেও আমরা লিখতে পারিঃ

    for(int i = 10; i > 0; i--) {

        printf("%d \n", i);
    }

রিকার্শনেঃ

void recursiveFor(int i, int n) {
    if(i==n) return; // Terminates if we reach goal
    printf("%d \n", i);
    recursiveFor(i-1, n); // Go to next step, recursion
}

সম্পূর্ণ প্রোগ্রামঃ

#include<stdio.h>

void recursiveFor(int i, int n) {
    if(i==n) return; // Terminates if we reach goal
    printf("%d \n", i);
    recursiveFor(i-1, n); // Go to next step, recursion
}

int main()
{

    recursiveFor(10, 0); // 10 to 0

    return 0;


}

রিকার্শন নিয়ে প্রথম লেখাতে একটি Fibonacci সিরিস সম্পর্কে বলেছি। বলেছিলাম রিকার্শন ব্যবহার করে n তম Fibonacci নাম্বারটা বের করার জন্য। তার জন্য আমরা একটি প্রোগ্রাম এভাবে লিখতে পারিঃ

#include<stdio.h>

int fibonacci(int n) {
    
    if(n==0)
        return 0;
    
    else if (n==1)
        return 1;
    
    else
        return(fibonacci(n-1) + fibonacci(n-2));
   }

int main()
{

    // printing 8th fibonacci number. 
    printf("%d\n", fibonacci(8));
    
    return 0;
    
}

Leave a Reply

Your email address will not be published. Required fields are marked *