রিকার্শন নিয়ে এর আগে একটি লেখা লিখেছি। যেখানে রিকার্শন সম্পর্কে বিস্তারিত জানা যাবেঃ রিকার্শন/ 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;
    
}
		
সুন্দর পোস্ট